@smarterplan/ngx-smarterplan-core 1.4.16 → 1.4.18

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.
Files changed (107) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/components/csv-export/csv-export.component.mjs +3 -3
  3. package/esm2022/lib/components/loader/loader.component.mjs +3 -3
  4. package/esm2022/lib/components/menu-bar/avatar/avatar.component.mjs +1 -1
  5. package/esm2022/lib/components/menu-bar/menu-bar.component.mjs +3 -3
  6. package/esm2022/lib/components/menu-bar/navigation-bar/navigation-bar.component.mjs +3 -3
  7. package/esm2022/lib/components/modal-switch-visit/modal-switch-visit.component.mjs +3 -3
  8. package/esm2022/lib/components/search-bar/search-bar.component.mjs +3 -3
  9. package/esm2022/lib/components/support-modal/support-modal.component.mjs +3 -3
  10. package/esm2022/lib/config.mjs +1 -1
  11. package/esm2022/lib/helpers.service.mjs +1 -1
  12. package/esm2022/lib/matterport-extensions/nest-thermostat/CanvasImage.mjs +1 -1
  13. package/esm2022/lib/matterport-extensions/nest-thermostat/CanvasRenderer.mjs +1 -1
  14. package/esm2022/lib/matterport-extensions/nest-thermostat/NestThermostat.mjs +1 -1
  15. package/esm2022/lib/matterport-extensions/nest-thermostat/PlaneRenderer.mjs +1 -1
  16. package/esm2022/lib/matterport-extensions/scene-component/SceneComponent.mjs +1 -1
  17. package/esm2022/lib/matterport-extensions/security-camera/SecurityCamera.mjs +22 -22
  18. package/esm2022/lib/matterport-extensions/tv-player/TvPlayer.mjs +1 -1
  19. package/esm2022/lib/matterport-extensions/view-frustum-mesh/ViewFrustumMesh.mjs +22 -22
  20. package/esm2022/lib/mattertagData.mjs +10 -1
  21. package/esm2022/lib/ngx-smarterplan-core.module.mjs +1 -1
  22. package/esm2022/lib/ngx-smarterplan-core.service.mjs +1 -1
  23. package/esm2022/lib/pipes/duration-to-string.pipe.mjs +1 -1
  24. package/esm2022/lib/pipes/format-date-number-to-digits.pipe.mjs +1 -1
  25. package/esm2022/lib/pipes/hashtag-from-id.pipe.mjs +1 -1
  26. package/esm2022/lib/pipes/safe-url.pipe.mjs +1 -1
  27. package/esm2022/lib/pipes/time-date-to-local-string.pipe.mjs +1 -1
  28. package/esm2022/lib/pipes/username-from-id.pipe.mjs +1 -1
  29. package/esm2022/lib/services/amplify-cache.service.mjs +1 -1
  30. package/esm2022/lib/services/base-tab.service.mjs +1 -1
  31. package/esm2022/lib/services/baseVisibility.service.mjs +1 -1
  32. package/esm2022/lib/services/content.service.mjs +1 -1
  33. package/esm2022/lib/services/filter.service.mjs +11 -1
  34. package/esm2022/lib/services/intervention.service.mjs +1 -1
  35. package/esm2022/lib/services/locale.service.mjs +1 -1
  36. package/esm2022/lib/services/matterport-import.service.mjs +10 -3
  37. package/esm2022/lib/services/matterport-measurement.service.mjs +1 -1
  38. package/esm2022/lib/services/matterport-navigation.service.mjs +1 -1
  39. package/esm2022/lib/services/matterport-object3d.service.mjs +1 -1
  40. package/esm2022/lib/services/matterport-pointer.service.mjs +6 -6
  41. package/esm2022/lib/services/matterport-tag-copy.service.mjs +455 -9
  42. package/esm2022/lib/services/matterport-tag.service.mjs +99 -10
  43. package/esm2022/lib/services/matterport.service.mjs +95 -49
  44. package/esm2022/lib/services/models/affectation.service.mjs +1 -1
  45. package/esm2022/lib/services/models/base-object.service.mjs +31 -4
  46. package/esm2022/lib/services/models/capture.service.mjs +1 -1
  47. package/esm2022/lib/services/models/comment.service.mjs +1 -1
  48. package/esm2022/lib/services/models/domain.service.mjs +1 -1
  49. package/esm2022/lib/services/models/equipment.service.mjs +14 -13
  50. package/esm2022/lib/services/models/event.service.mjs +1 -1
  51. package/esm2022/lib/services/models/feature.service.mjs +8 -7
  52. package/esm2022/lib/services/models/hashtag.service.mjs +1 -1
  53. package/esm2022/lib/services/models/layer.service.mjs +1 -1
  54. package/esm2022/lib/services/models/measurement.service.mjs +1 -1
  55. package/esm2022/lib/services/models/mission.service.mjs +1 -1
  56. package/esm2022/lib/services/models/navigation.service.mjs +1 -1
  57. package/esm2022/lib/services/models/node.service.mjs +1 -1
  58. package/esm2022/lib/services/models/object3D.service.mjs +1 -1
  59. package/esm2022/lib/services/models/operation.service.mjs +1 -1
  60. package/esm2022/lib/services/models/organisation.service.mjs +1 -1
  61. package/esm2022/lib/services/models/plan.service.mjs +1 -1
  62. package/esm2022/lib/services/models/poi.service.mjs +62 -50
  63. package/esm2022/lib/services/models/profile.service.mjs +1 -1
  64. package/esm2022/lib/services/models/property.service.mjs +1 -1
  65. package/esm2022/lib/services/models/space.service.mjs +25 -2
  66. package/esm2022/lib/services/models/template.service.mjs +1 -1
  67. package/esm2022/lib/services/models/ticket.service.mjs +27 -8
  68. package/esm2022/lib/services/models/visit.service.mjs +1 -1
  69. package/esm2022/lib/services/models/zone.service.mjs +9 -5
  70. package/esm2022/lib/services/navigator.service.mjs +14 -1
  71. package/esm2022/lib/services/s3.service.mjs +1 -1
  72. package/esm2022/lib/services/search.service.mjs +1 -1
  73. package/esm2022/lib/services/support.service.mjs +1 -1
  74. package/esm2022/lib/services/tag.service.mjs +16 -16
  75. package/esm2022/lib/services/threejs-import.service.mjs +1 -1
  76. package/esm2022/lib/services/threejs.service.mjs +316 -35
  77. package/esm2022/lib/services/user.service.mjs +1 -1
  78. package/esm2022/lib/services/utils/matterport-transform.util.mjs +1 -1
  79. package/esm2022/lib/services/validators.service.mjs +1 -1
  80. package/esm2022/lib/services/viewer.service.mjs +147 -8
  81. package/esm2022/lib/services/zone-drawer.service.mjs +1 -1
  82. package/esm2022/lib/services/zoneChange.service.mjs +10 -1
  83. package/esm2022/lib/tokens/matterport-sdk-key.token.mjs +1 -1
  84. package/esm2022/lib/types.service.mjs +1 -1
  85. package/esm2022/lib/validators/email.directive.mjs +1 -1
  86. package/esm2022/lib/validators/no-empty.directive.mjs +1 -1
  87. package/esm2022/lib/validators/number.directive.mjs +1 -1
  88. package/esm2022/lib/validators/text.directive.mjs +1 -1
  89. package/esm2022/public-api.mjs +1 -1
  90. package/fesm2022/smarterplan-ngx-smarterplan-core.mjs +5150 -4022
  91. package/fesm2022/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
  92. package/lib/mattertagData.d.ts +4 -0
  93. package/lib/services/matterport-tag-copy.service.d.ts +128 -2
  94. package/lib/services/matterport-tag.service.d.ts +24 -1
  95. package/lib/services/matterport.service.d.ts +12 -3
  96. package/lib/services/models/base-object.service.d.ts +11 -1
  97. package/lib/services/models/equipment.service.d.ts +2 -1
  98. package/lib/services/models/feature.service.d.ts +2 -1
  99. package/lib/services/models/poi.service.d.ts +1 -0
  100. package/lib/services/models/space.service.d.ts +7 -0
  101. package/lib/services/models/ticket.service.d.ts +4 -1
  102. package/lib/services/threejs.service.d.ts +103 -5
  103. package/lib/services/viewer.service.d.ts +39 -1
  104. package/lib/services/zoneChange.service.d.ts +9 -0
  105. package/lib/types.service.d.ts +8 -0
  106. package/package.json +1 -1
  107. package/src/assets/vs-app.json +67 -67
@@ -519,4 +519,4 @@ export function pointToString(point) {
519
519
  const z = point.z.toFixed(3);
520
520
  return `{ x: ${x}, y: ${y}, z: ${z} }`;
521
521
  }
522
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWNvcmUvc3JjL2xpYi9oZWxwZXJzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDekcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFxQixXQUFXLEVBQUUsTUFBTSxFQUFXLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQXVCdkc7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLFFBQWdCO0lBQ2xELElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsSUFBSSxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQzVCLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQztRQUM5RSxNQUFNLFNBQVMsR0FBcUIsRUFBRSxDQUFDO1FBQ3ZDLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQ2xDLFNBQVMsQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFF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Q0FBQztBQUN6QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxLQUEwQztJQUNwRSxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU3QixPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztBQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgTW9kYWxTd2l0Y2hWaXNpdENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbW9kYWwtc3dpdGNoLXZpc2l0L21vZGFsLXN3aXRjaC12aXNpdC5jb21wb25lbnRcIjtcbmltcG9ydCB7IGRvd25sb2FkRmlsZUFzT2JqZWN0IH0gZnJvbSBcIi4vc2VydmljZXMvczMuc2VydmljZVwiO1xuaW1wb3J0IHsgRXF1aXBtZW50RG9jdW1lbnQsIExldmVsU3RhdHVzLCBMb2NhbGUsIE1pc3Npb24sIFBvaVR5cGUsIFJvbGVTdGF0dXMgfSBmcm9tIFwiLi90eXBlcy5zZXJ2aWNlXCI7XG5cbi8qKlxuICogTWFwcyB0aGUgY29vcmRpbmF0ZSBzcGFjZSBQT0kgcG9zaXRpb25zIHdlcmUgY2FwdHVyZWQgaW4gb250byB0aGUgbG9hZGVkIG1vZGVsJ3Mgb3duIHNwYWNlLlxuICpcbiAqIFRhZyBjb29yZGluYXRlcyBjb21lIGZyb20gd2hpY2hldmVyIHZpZXdlciBjcmVhdGVkIHRoZW0gLSB0eXBpY2FsbHkgTWF0dGVycG9ydCAtIGFuZCB0aGUgLmdsYiBpc1xuICogYSBzZXBhcmF0ZSBjYXB0dXJlIHdpdGggaXRzIG93biBvcmlnaW4sIGF4ZXMgYW5kIHVuaXRzLiBXaXRob3V0IHRoaXMsIGEgdGFnIGNyZWF0ZWQgaW4gb25lIHZpZXdlclxuICogbGFuZHMgaW4gdGhlIHdyb25nIHBsYWNlIGluIHRoZSBvdGhlciBldmVuIHRob3VnaCBib3RoIHJlYWQgdGhlIHNhbWUgcmVjb3JkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRocmVlSnNBbGlnbm1lbnQge1xuICAgIHRyYW5zbGF0aW9uPzogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyIH07XG4gICAgLyoqIEV1bGVyIGFuZ2xlcyBpbiByYWRpYW5zLCBhcHBsaWVkIFhZWi4gKi9cbiAgICByb3RhdGlvbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlciB9O1xuICAgIHNjYWxlPzogbnVtYmVyO1xufVxuXG4vKiogV2hlcmUgdGhlIGNhbWVyYSBzdGFydHMgd2hlbiBhIFRocmVlLmpzIHZpc2l0IGlzIG9wZW5lZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGhyZWVKc1BsYWNlbWVudCB7XG4gICAgY2FtZXJhUG9zaXRpb24/OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXIgfTtcbiAgICByb3RhdGlvbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlciB9O1xuICAgIGFsaWdubWVudD86IFRocmVlSnNBbGlnbm1lbnQ7XG59XG5cbi8qKlxuICogUGFyc2VzIHRoZSBwbGFjZW1lbnQgc3RvcmVkIGluIGEgVGhyZWUuanMgY2FwdHVyZSdzIG1ldGFkYXRhLCBvciBudWxsIHdoZW4gdGhlcmUgaXMgbm9uZS5cbiAqXG4gKiBCb3RoIHRoZSBpbXBvcnQgKHdyaXRpbmcgdGhlIG5hdmlnYXRpb24gZW50cnkpIGFuZCB0aGUgdmlld2VyIChmcmFtaW5nIHRoZSBjYW1lcmEpIG5lZWQgdGhpcywgc29cbiAqIGl0IGxpdmVzIGhlcmUgcmF0aGVyIHRoYW4gb24gZWl0aGVyIHNlcnZpY2UuIFBsYWNlbWVudCBpcyBvcHRpb25hbCAtIHRoZSB2aWV3ZXIgZnJhbWVzIHRoZSBtb2RlbFxuICogYXV0b21hdGljYWxseSB3aXRob3V0IGl0IC0gc28gdW51c2FibGUgbWV0YWRhdGEgaXMgd2FybmVkIGFib3V0IGFuZCBkcm9wcGVkLCBuZXZlciB0aHJvd24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRocmVlSnNQbGFjZW1lbnQobWV0YWRhdGE6IHN0cmluZyk6IFRocmVlSnNQbGFjZW1lbnQgfCBudWxsIHtcbiAgICBpZiAoIW1ldGFkYXRhIHx8ICFtZXRhZGF0YS50cmltKCkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UobWV0YWRhdGEpO1xuICAgICAgICBjb25zdCBpc1ZlY3RvciA9ICh2YWx1ZTogYW55KSA9PlxuICAgICAgICAgICAgdmFsdWUgJiYgW1wieFwiLCBcInlcIiwgXCJ6XCJdLmV2ZXJ5KChheGlzKSA9PiB0eXBlb2YgdmFsdWVbYXhpc10gPT09IFwibnVtYmVyXCIpO1xuICAgICAgICBjb25zdCBwbGFjZW1lbnQ6IFRocmVlSnNQbGFjZW1lbnQgPSB7fTtcbiAgICAgICAgaWYgKGlzVmVjdG9yKHBhcnNlZC5jYW1lcmFQb3NpdGlvbikpIHtcbiAgICAgICAgICAgIHBsYWNlbWVudC5jYW1lcmFQb3NpdGlvbiA9IHBhcnNlZC5jYW1lcmFQb3NpdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNWZWN0b3IocGFyc2VkLnJvdGF0aW9uKSkge1xuICAgICAgICAgICAgcGxhY2VtZW50LnJvdGF0aW9uID0gcGFyc2VkLnJvdGF0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc291cmNlID0gcGFyc2VkLmFsaWdubWVudDtcbiAgICAgICAgaWYgKHNvdXJjZSkge1xuICAgICAgICAgICAgY29uc3QgYWxpZ25tZW50OiBUaHJlZUpzQWxpZ25tZW50ID0ge307XG4gICAgICAgICAgICBpZiAoaXNWZWN0b3Ioc291cmNlLnRyYW5zbGF0aW9uKSkge1xuICAgICAgICAgICAgICAgIGFsaWdubWVudC50cmFuc2xhdGlvbiA9IHNvdXJjZS50cmFuc2xhdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1ZlY3Rvcihzb3VyY2Uucm90YXRpb24pKSB7XG4gICAgICAgICAgICAgICAgYWxpZ25tZW50LnJvdGF0aW9uID0gc291cmNlLnJvdGF0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gU2NhbGUgMCB3b3VsZCBjb2xsYXBzZSBldmVyeSB0YWcgb250byBhIHBvaW50LCBzbyB0cmVhdCBpdCBhcyB1bnNldCByYXRoZXIgdGhhbiBob25vdXIgaXQuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHNvdXJjZS5zY2FsZSA9PT0gXCJudW1iZXJcIiAmJiBzb3VyY2Uuc2NhbGUgPiAwKSB7XG4gICAgICAgICAgICAgICAgYWxpZ25tZW50LnNjYWxlID0gc291cmNlLnNjYWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGFsaWdubWVudCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHBsYWNlbWVudC5hbGlnbm1lbnQgPSBhbGlnbm1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGxhY2VtZW50LmNhbWVyYVBvc2l0aW9uIHx8IHBsYWNlbWVudC5yb3RhdGlvbiB8fCBwbGFjZW1lbnQuYWxpZ25tZW50ID8gcGxhY2VtZW50IDogbnVsbDtcbiAgICB9IGNhdGNoIHtcbiAgICAgICAgY29uc29sZS53YXJuKFwiSWdub3JpbmcgdW5wYXJzZWFibGUgVGhyZWUuanMgcGxhY2VtZW50IG1ldGFkYXRhOlwiLCBtZXRhZGF0YSk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3RhbmNlQmV0d2VlblR3b1BvaW50cyhzdGFydFBvaW50LCBlbmRQb2ludCkge1xuICAgIGNvbnN0IGR4ID0gZW5kUG9pbnQueCAtIHN0YXJ0UG9pbnQueDtcbiAgICBjb25zdCBkeSA9IGVuZFBvaW50LnkgLSBzdGFydFBvaW50Lnk7XG4gICAgY29uc3QgZHogPSBlbmRQb2ludC56IC0gc3RhcnRQb2ludC56O1xuICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5zcXJ0KGR4ICogZHggKyBkeSAqIGR5ICsgZHogKiBkeik7XG4gICAgcmV0dXJuIE1hdGgucm91bmQoZGlzdGFuY2UgKiAxMDApIC8gMTAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9pVHlwZVRvU3RyaW5nKHR5cGU6IFBvaVR5cGUpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFBvaVR5cGUuRVFVSVBNRU5UOlxuICAgICAgICAgICAgcmV0dXJuIFwiZXF1aXBtZW50XCI7XG4gICAgICAgIGNhc2UgUG9pVHlwZS5USUNLRVQ6XG4gICAgICAgICAgICByZXR1cm4gXCJ0aWNrZXRcIjtcbiAgICAgICAgY2FzZSBQb2lUeXBlLkRBVEE6XG4gICAgICAgICAgICByZXR1cm4gXCJkYXRhXCI7XG4gICAgICAgIGNhc2UgUG9pVHlwZS5ERVNLOlxuICAgICAgICAgICAgcmV0dXJuIFwiZGF0YVwiO1xuICAgICAgICBjYXNlIFBvaVR5cGUuSU5GT1JNQVRJT046XG4gICAgICAgICAgICByZXR1cm4gXCJpbmZvcm1hdGlvblwiO1xuICAgICAgICBjYXNlIFBvaVR5cGUuTUVBU1VSRTpcbiAgICAgICAgICAgIHJldHVybiBcIm1lYXN1cmVcIjtcbiAgICAgICAgY2FzZSBQb2lUeXBlLlBFT1BMRTpcbiAgICAgICAgICAgIHJldHVybiBcInBlb3BsZVwiO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIFwidGlja2V0XCI7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd2FpdCh0aW1lb3V0OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgdGltZW91dCA9IHRpbWVvdXQgfHwgMjAwMDtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0sIHRpbWVvdXQpO1xuICAgIH0pO1xufVxuXG5leHBvcnQgY29uc3Qgd2FpdFVudGlsID0gKGNvbmRpdGlvbjogKCkgPT4gYm9vbGVhbikgPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGNvbnN0IGludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29uZGl0aW9uKCkpIHtcbiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsSWQpO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMzApO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1Ub0FycmF5KGVudW1lcmFibGU6IGFueSkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnVtZXJhYmxlKVxuICAgICAgICAuZmlsdGVyKCh2YWx1ZSkgPT4gaXNOYU4oTnVtYmVyKHZhbHVlKSkgPT09IHRydWUpXG4gICAgICAgIC5tYXAoKGtleSkgPT4gZW51bWVyYWJsZVtrZXldKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExldmVsc0JlbG93KGxldmVsOiBMZXZlbFN0YXR1cyk6IExldmVsU3RhdHVzW10ge1xuICAgIGNvbnN0IGFsbCA9IFtcbiAgICAgICAgTGV2ZWxTdGF0dXMuTUlOSU1VTSxcbiAgICAgICAgTGV2ZWxTdGF0dXMuTE9XLFxuICAgICAgICBMZXZlbFN0YXR1cy5NRURJVU0sXG4gICAgICAgIExldmVsU3RhdHVzLkhJR0gsXG4gICAgICAgIExldmVsU3RhdHVzLk1BWElNVU0sXG4gICAgXTtcbiAgICBzd2l0Y2ggKGxldmVsKSB7XG4gICAgICAgIGNhc2UgTGV2ZWxTdGF0dXMuTUFYSU1VTTpcbiAgICAgICAgICAgIHJldHVybiBhbGw7XG4gICAgICAgIGNhc2UgTGV2ZWxTdGF0dXMuSElHSDpcbiAgICAgICAgICAgIGFsbC5zcGxpY2UoNCwgMSk7XG4gICAgICAgICAgICByZXR1cm4gYWxsO1xuICAgICAgICBjYXNlIExldmVsU3RhdHVzLk1FRElVTTpcbiAgICAgICAgICAgIGFsbC5zcGxpY2UoMywgMik7XG4gICAgICAgICAgICByZXR1cm4gYWxsO1xuICAgICAgICBjYXNlIExldmVsU3RhdHVzLkxPVzpcbiAgICAgICAgICAgIHJldHVybiBbTGV2ZWxTdGF0dXMuTUlOSU1VTSwgTGV2ZWxTdGF0dXMuTE9XXTtcbiAgICAgICAgY2FzZSBMZXZlbFN0YXR1cy5NSU5JTVVNOlxuICAgICAgICAgICAgcmV0dXJuIFtMZXZlbFN0YXR1cy5NSU5JTVVNXTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBbTGV2ZWxTdGF0dXMuTUlOSU1VTV07XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGlnaGVzdExldmVsRm9yTWlzc2lvbnMobWlzc2lvbnM6IE1pc3Npb25bXSk6IExldmVsU3RhdHVzIHtcbiAgICBsZXQgbGF0ZXN0VmlzaWJsZUxldmVscyA9IFtMZXZlbFN0YXR1cy5NSU5JTVVNXTtcbiAgICBmb3IgKGNvbnN0IG0gb2YgbWlzc2lvbnMpIHtcbiAgICAgICAgY29uc3QgdmlzaWJsZUxldmVscyA9IGdldExldmVsc0JlbG93KG0ubGV2ZWwpO1xuICAgICAgICBpZiAodmlzaWJsZUxldmVscy5sZW5ndGggPiBsYXRlc3RWaXNpYmxlTGV2ZWxzLmxlbmd0aCkge1xuICAgICAgICAgICAgbGF0ZXN0VmlzaWJsZUxldmVscyA9IHZpc2libGVMZXZlbHM7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3dpdGNoIChsYXRlc3RWaXNpYmxlTGV2ZWxzLmxlbmd0aCkge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICByZXR1cm4gTGV2ZWxTdGF0dXMuTUlOSU1VTTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIExldmVsU3RhdHVzLkxPVztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmV0dXJuIExldmVsU3RhdHVzLk1FRElVTTtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgcmV0dXJuIExldmVsU3RhdHVzLkhJR0g7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIHJldHVybiBMZXZlbFN0YXR1cy5NQVhJTVVNO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIExldmVsU3RhdHVzLk1JTklNVU07XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGlnaGVzdFJvbGVGb3JNaXNzaW9ucyhtaXNzaW9uczogTWlzc2lvbltdKTogUm9sZVN0YXR1cyB7XG4gICAgbGV0IGhpZ2hlc3RSb2xlID0gUm9sZVN0YXR1cy5WSVNJVE9SO1xuICAgIGZvciAoY29uc3QgbSBvZiBtaXNzaW9ucykge1xuICAgICAgICBpZiAobS5yb2xlID09PSBSb2xlU3RhdHVzLkFETUlOKSB7XG4gICAgICAgICAgICByZXR1cm4gUm9sZVN0YXR1cy5BRE1JTjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaGlnaGVzdFJvbGUgPT09IFJvbGVTdGF0dXMuT1dORVIpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtLnJvbGUgPT09IFJvbGVTdGF0dXMuT1dORVIpIHtcbiAgICAgICAgICAgIGhpZ2hlc3RSb2xlID0gUm9sZVN0YXR1cy5PV05FUjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobS5yb2xlID09PSBSb2xlU3RhdHVzLk1BTkFHRVIpIHtcbiAgICAgICAgICAgIGhpZ2hlc3RSb2xlID0gUm9sZVN0YXR1cy5NQU5BR0VSO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIG0ucm9sZSA9PT0gUm9sZVN0YXR1cy5TRVJWSUNFICYmXG4gICAgICAgICAgICBoaWdoZXN0Um9sZSAhPT0gUm9sZVN0YXR1cy5NQU5BR0VSXG4gICAgICAgICkge1xuICAgICAgICAgICAgaGlnaGVzdFJvbGUgPSBSb2xlU3RhdHVzLlNFUlZJQ0U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgbS5yb2xlID09PSBSb2xlU3RhdHVzLk9DQ1VQQU5UICYmXG4gICAgICAgICAgICBoaWdoZXN0Um9sZSA9PT0gUm9sZVN0YXR1cy5WSVNJVE9SXG4gICAgICAgICkge1xuICAgICAgICAgICAgaGlnaGVzdFJvbGUgPSBSb2xlU3RhdHVzLk9DQ1VQQU5UO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtLnJvbGUgPT09IFJvbGVTdGF0dXMuR1VJREVfTVVTRVVNKSB7XG4gICAgICAgICAgICBoaWdoZXN0Um9sZSA9IFJvbGVTdGF0dXMuR1VJREVfTVVTRVVNO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtLnJvbGUgPT09IFJvbGVTdGF0dXMuVklTSVRPUl9NVVNFVU0pIHtcbiAgICAgICAgICAgIGhpZ2hlc3RSb2xlID0gUm9sZVN0YXR1cy5WSVNJVE9SX01VU0VVTTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaGlnaGVzdFJvbGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb2xlc0JlbG93Rm9yTWFuYWdlcihyb2xlOiBSb2xlU3RhdHVzKTogUm9sZVN0YXR1c1tdIHtcbiAgICBjb25zdCBhbGwgPSBbXG4gICAgICAgIFJvbGVTdGF0dXMuVklTSVRPUixcbiAgICAgICAgUm9sZVN0YXR1cy5PQ0NVUEFOVCxcbiAgICAgICAgUm9sZVN0YXR1cy5TRVJWSUNFLFxuICAgICAgICBSb2xlU3RhdHVzLk1BTkFHRVIsXG4gICAgICAgIFJvbGVTdGF0dXMuT1dORVIsXG4gICAgICAgIFJvbGVTdGF0dXMuQURNSU4sXG4gICAgXTtcbiAgICBjb25zdCBtdXNldW0gPSBbUm9sZVN0YXR1cy5WSVNJVE9SX01VU0VVTSwgUm9sZVN0YXR1cy5HVUlERV9NVVNFVU1dO1xuICAgIHN3aXRjaCAocm9sZSkge1xuICAgICAgICBjYXNlIFJvbGVTdGF0dXMuQURNSU46XG4gICAgICAgICAgICByZXR1cm4gWy4uLmFsbCwgLi4ubXVzZXVtXTtcbiAgICAgICAgY2FzZSBSb2xlU3RhdHVzLk9XTkVSOlxuICAgICAgICAgICAgYWxsLnNwbGljZSg1LCAxKTtcbiAgICAgICAgICAgIHJldHVybiBhbGw7XG4gICAgICAgIGNhc2UgUm9sZVN0YXR1cy5NQU5BR0VSOlxuICAgICAgICAgICAgYWxsLnNwbGljZSg0LCAyKTtcbiAgICAgICAgICAgIHJldHVybiBhbGw7XG4gICAgICAgIGNhc2UgUm9sZVN0YXR1cy5HVUlERV9NVVNFVU06XG4gICAgICAgICAgICByZXR1cm4gbXVzZXVtO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGFsbC5zcGxpY2UoNCwgMik7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyVW5pcXVlQXJyYXlCeUlEKGFycmF5T2ZPYmplY3RzOiBhbnlbXSk6IGFueVtdIHtcbiAgICByZXR1cm4gYXJyYXlPZk9iamVjdHMuZmlsdGVyKFxuICAgICAgICAodiwgaW5kZXgsIGEpID0+IGEuZmluZEluZGV4KCh0KSA9PiB0LmlkID09PSB2LmlkKSA9PT0gaW5kZXgsXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZU51bGxLZXlzRnJvbU9iamVjdChvYmplY3Q6IE9iamVjdCkge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iamVjdCkpIHtcbiAgICAgICAgaWYgKG9iamVjdFtrZXldID09PSBudWxsKSB7XG4gICAgICAgICAgICBkZWxldGUgb2JqZWN0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogVGVzdCBpZiBhIGRhdGUgaGFzIGV4cGlyZWRcbiAqIEBwYXJhbSBkYXRlXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBkYXRlIGhhcyBleHBpcmVkLCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGVIYXNFeHBpcmVkKFxuICAgIGRhdGU6IHN0cmluZyB8IERhdGUgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLFxuKTogYm9vbGVhbiB7XG4gICAgaWYgKGRhdGUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUpIDw9IG5ldyBEYXRlKCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ0xvY2FsZVRvRW51bShsb2NhbGU6IHN0cmluZyk6IExvY2FsZSB7XG4gICAgc3dpdGNoIChsb2NhbGUpIHtcbiAgICAgICAgY2FzZSBcImVuXCI6XG4gICAgICAgICAgICByZXR1cm4gTG9jYWxlLkVOO1xuICAgICAgICBjYXNlIFwiZnJcIjpcbiAgICAgICAgICAgIHJldHVybiBMb2NhbGUuRlI7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gTG9jYWxlLkVOO1xuICAgIH1cbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWV0YUZvckltYWdlKHVybCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG5cbiAgICAgICAgaW1nLmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsICgpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoaW1nKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGltZy5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwgKCkgPT4gcmVqZWN0KCkpO1xuICAgICAgICBpbWcuc3JjID0gdXJsO1xuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc29ydEFscGhhYmV0aWNhbGx5T25OYW1lKGFycmF5OiB7IG5hbWU6IHN0cmluZzsgfVtdKTogYW55W10ge1xuICAgIHJldHVybiBhcnJheS5zb3J0KChhLCBiKSA9PiBhLm5hbWUubG9jYWxlQ29tcGFyZShiLm5hbWUpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkRW1haWwoZW1haWw6IHN0cmluZykge1xuICAgIGNvbnN0IHJlID1cbiAgICAgICAgL14oKFteXFxzXCIoKSwuOjs8PkBbXFxcXFxcXV0rKFxcLlteXFxzXCIoKSwuOjs8PkBbXFxcXFxcXV0rKSopfChcIi4rXCIpKUAoKFxcWyg/OlxcZHsxLDN9XFwuKXszfVxcZHsxLDN9XSl8KChbXFxkQS1aYS16XFwtXStcXC4pK1tBLVphLXpdezIsfSkpJC87XG4gICAgcmV0dXJuIHJlLnRlc3QoZW1haWwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRCbG9iKGJsb2IsIGZpbGVuYW1lKSB7XG4gICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XG4gICAgYS5ocmVmID0gdXJsO1xuICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZSB8fCBcImRvd25sb2FkXCI7XG4gICAgY29uc3QgY2xpY2tIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbiAgICAgICAgICAgIGEucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGNsaWNrSGFuZGxlcik7XG4gICAgICAgIH0sIDE1MCk7XG4gICAgfTtcbiAgICBhLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBjbGlja0hhbmRsZXIsIGZhbHNlKTtcbiAgICBhLmNsaWNrKCk7XG4gICAgcmV0dXJuIGE7XG59XG5cbi8qXG4gICAgT3BlbiBtb2RhbCBpZiBvbmUgaGFzIHRvIHN3aXRjaCB2aXJ0dWFsIHZpc2l0XG4qL1xuZXhwb3J0IGZ1bmN0aW9uIG9wZW5Nb2RhbEZvclZpc2l0U3dpdGNoKFxuICAgIG1vZGFsU2VydmljZTogTmdiTW9kYWwsXG4gICAgbW9kZWwzRDogc3RyaW5nLFxuICAgIHNwYWNlSUQ6IHN0cmluZyxcbiAgICBkYXRhVG9Nb3ZlOiB7IHN3ZWVwVG9Nb3ZlOiBzdHJpbmcsIHJvdGF0aW9uOiBhbnk7IH0gfCBudWxsID0gbnVsbFxuKSB7XG4gICAgY29uc3QgbW9kYWxSZWZlcmVuY2UgPSBtb2RhbFNlcnZpY2Uub3BlbihNb2RhbFN3aXRjaFZpc2l0Q29tcG9uZW50KTtcbiAgICBtb2RhbFJlZmVyZW5jZS5jb21wb25lbnRJbnN0YW5jZS5jb250ZW50ID1cbiAgICAgICAgXCJUaGlzIG9iamVjdCBiZWxvbmdzIHRvIGFub3RoZXIgM0QgdmlzaXQuIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBzd2l0Y2ggdGhlIHZpc2l0P1wiO1xuICAgIG1vZGFsUmVmZXJlbmNlLmNvbXBvbmVudEluc3RhbmNlLm1vZGVsM0QgPSBtb2RlbDNEO1xuICAgIG1vZGFsUmVmZXJlbmNlLmNvbXBvbmVudEluc3RhbmNlLnNwYWNlSUQgPSBzcGFjZUlEO1xuICAgIGlmIChkYXRhVG9Nb3ZlKSB7XG4gICAgICAgIG1vZGFsUmVmZXJlbmNlLmNvbXBvbmVudEluc3RhbmNlLmRhdGFUb01vdmUgPSBkYXRhVG9Nb3ZlO1xuICAgIH1cblxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3VycmVudExhbmcodHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKTogc3RyaW5nIHtcbiAgICBsZXQgbGFuZyA9IHRyYW5zbGF0ZS5nZXRDdXJyZW50TGFuZygpIHx8IHRyYW5zbGF0ZS5nZXRGYWxsYmFja0xhbmcoKSB8fCBcImZyXCI7XG5cbiAgICAvLyBDbGVhbiB1cCBsZWFkaW5nIG1lc3NcbiAgICBsYW5nID0gbGFuZy5yZXBsYWNlKC9eW18tXSsvLCAnJyk7XG5cbiAgICAvLyBIYW5kbGUgZnJfRlIgb3IgZnItRlIgKHRha2UgcHJpbWFyeSBsYW5ndWFnZSlcbiAgICBpZiAobGFuZy5pbmNsdWRlcyhcIl9cIikpIHtcbiAgICAgICAgbGFuZyA9IGxhbmcuc3BsaXQoXCJfXCIpWzBdO1xuICAgIH1cbiAgICBpZiAobGFuZy5pbmNsdWRlcyhcIi1cIikpIHtcbiAgICAgICAgbGFuZyA9IGxhbmcuc3BsaXQoXCItXCIpWzBdO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZSAyLWxldHRlciBjb2RlIChJU08gNjM5LTEpXG4gICAgaWYgKGxhbmcubGVuZ3RoID4gMikge1xuICAgICAgICBsYW5nID0gbGFuZy5zdWJzdHJpbmcoMCwgMik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxhbmc7XG59XG5cbi8qKlxuICogUmV0dXJuIGEgc3RyaW5nIG9mIGEgZ2l2ZW4gZGF0ZSB0aW1lIGluIGxvY2FsIGZvcm1hdC5cbiAqIFRoZSBmb3JtYXQgaXMgZGV0ZXJtaW5lZCBieSB0aGUgY3VycmVudCBsYW5ndWFnZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGVUaW1lVG9Mb2NhbFN0cmluZyhcbiAgICBkYXRlOiBudW1iZXIgfCBzdHJpbmcgfCBEYXRlLFxuICAgIHRyYW5zbGF0ZT86IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgbW9kZT8sXG4pOiBzdHJpbmcge1xuICAgIGxldCBsYW5nID0gXCJlbi1FTlwiO1xuICAgIGlmICh0cmFuc2xhdGUpIHtcbiAgICAgICAgbGFuZyA9IGdldEN1cnJlbnRMYW5nKHRyYW5zbGF0ZSk7XG4gICAgfVxuXG4gICAgbGV0IG9wdGlvbnM6IHtcbiAgICAgICAgbW9udGg/O1xuICAgICAgICB5ZWFyPztcbiAgICAgICAgZGF5PztcbiAgICAgICAgaG91cj87XG4gICAgICAgIG1pbnV0ZT87XG4gICAgICAgIHNlY29uZD87XG4gICAgICAgIGRhdGVTdHlsZT87XG4gICAgICAgIHRpbWVTdHlsZT87XG4gICAgICAgIHdlZWtkYXk/O1xuICAgICAgICB0aW1lWm9uZT87XG4gICAgICAgIHRpbWVab25lTmFtZT87XG4gICAgfTtcbiAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgY2FzZSBcImRheV9udW1lcmljXCI6XG4gICAgICAgICAgICBvcHRpb25zID0geyBkYXk6IFwibnVtZXJpY1wiIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImRheVwiOlxuICAgICAgICAgICAgb3B0aW9ucyA9IHsgd2Vla2RheTogXCJsb25nXCIgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZGF0ZVwiOlxuICAgICAgICAgICAgb3B0aW9ucyA9IHsgZGF0ZVN0eWxlOiBcImxvbmdcIiB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJzaG9ydF9kYXRlX3RpbWVcIjpcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgeWVhcjogXCIyLWRpZ2l0XCIsXG4gICAgICAgICAgICAgICAgbW9udGg6IFwiMi1kaWdpdFwiLFxuICAgICAgICAgICAgICAgIGRheTogXCIyLWRpZ2l0XCIsXG4gICAgICAgICAgICAgICAgaG91cjogXCIyLWRpZ2l0XCIsXG4gICAgICAgICAgICAgICAgbWludXRlOiBcIjItZGlnaXRcIixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInRpbWVcIjpcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IGhvdXI6IFwibnVtZXJpY1wiLCBtaW51dGU6IFwibnVtZXJpY1wiIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImRheV90aW1lX3pvbmVcIjpcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgd2Vla2RheTogXCJsb25nXCIsXG4gICAgICAgICAgICAgICAgeWVhcjogXCJudW1lcmljXCIsXG4gICAgICAgICAgICAgICAgbW9udGg6IFwibG9uZ1wiLFxuICAgICAgICAgICAgICAgIGRheTogXCJudW1lcmljXCIsXG4gICAgICAgICAgICAgICAgaG91cjogXCJudW1lcmljXCIsXG4gICAgICAgICAgICAgICAgbWludXRlOiBcIm51bWVyaWNcIixcbiAgICAgICAgICAgICAgICB0aW1lWm9uZU5hbWU6IFwic2hvcnRPZmZzZXRcIixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgZGF0ZVN0eWxlOiBcImxvbmdcIixcbiAgICAgICAgICAgICAgICB0aW1lU3R5bGU6IFwic2hvcnRcIixcbiAgICAgICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlKS50b0xvY2FsZVN0cmluZyhsYW5nLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBDb21wYXJlcyB0d28gc3RyaW5nIGFycmF5c1xuICogQHBhcmFtIGFycmF5MVxuICogQHBhcmFtIGFycmF5MlxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFycmF5c0NvbnRhaW5TYW1lRWxlbWVudHMoXG4gICAgYXJyYXkxOiBzdHJpbmdbXSxcbiAgICBhcnJheTI6IHN0cmluZ1tdLFxuKTogYm9vbGVhbiB7XG4gICAgYXJyYXkxLnNvcnQoKTtcbiAgICBhcnJheTIuc29ydCgpO1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhcnJheTEpID09PSBKU09OLnN0cmluZ2lmeShhcnJheTIpO1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWaXNpdFVybChjdXJyZW50VXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhdGggPSBjdXJyZW50VXJsLnNwbGl0KFwiL1wiKTtcbiAgICBwYXRoLnNwbGljZSgzLCBwYXRoLmxlbmd0aCAtIDIpO1xuICAgIHJldHVybiBwYXRoLmpvaW4oXCIvXCIpO1xufVxuXG4vKipcbiAqIEV4dHJhY3Qgc3BhY2VJRCBmcm9tIHVybCB3aGVuIGluIHZpc2l0IDNEXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTcGFjZUlERnJvbVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgdmlzaXRVcmwgPSBnZXRWaXNpdFVybCh1cmwpO1xuICAgIHJldHVybiB2aXNpdFVybC5zcGxpdChcIi9cIilbMl07XG59XG5cbi8qKlxuICogRG93bmxvYWQgcmVsYXRlZFxuICovXG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSBcImZpbGUtc2F2ZXJcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZShmaWxlVXJsOiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcpIHtcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGZpbGVVcmwgKyBmaWxlTmFtZSwgZmlsZU5hbWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb3BlbkRvY3VtZW50KGZpbGVVcmw6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZywgaWQ6IG51bWJlcikge1xuICAgIHdpbmRvdy5vcGVuKGAke2ZpbGVVcmwgKyBmaWxlTmFtZX0jZG9jPSR7aWR9YCwgXCJfYmxhbmtcIiwgXCJcIik7XG59XG5cbmV4cG9ydCBjb25zdCBkb3dubG9hZEVxdWlwbWVudERvY3VtZW50ID0gYXN5bmMgKFxuICAgIGRvY3VtZW50XzogRXF1aXBtZW50RG9jdW1lbnQsXG4pOiBQcm9taXNlPE9iamVjdCB8IHZvaWQ+ID0+IHtcbiAgICBjb25zdCBzaWduZWRGaWxlID0gYXdhaXQgZG93bmxvYWRGaWxlQXNPYmplY3QoZG9jdW1lbnRfLnVybCk7XG4gICAgaWYgKHNpZ25lZEZpbGUpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBkb3dubG9hZEJsb2Ioc2lnbmVkRmlsZS5Cb2R5LCBkb2N1bWVudF8uZmlsZW5hbWUpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjaGVja0VsZW1lbnRCeUlkKHNlbGVjdG9yKSB7XG4gICAgbGV0IHF1ZXJ5U2VsZWN0b3IgPSBudWxsO1xuICAgIHdoaWxlIChxdWVyeVNlbGVjdG9yID09PSBudWxsKSB7XG4gICAgICAgIGF3YWl0IHJhZkFzeW5jKCk7XG4gICAgICAgIHF1ZXJ5U2VsZWN0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWxlY3Rvcik7XG4gICAgfVxuICAgIHJldHVybiBxdWVyeVNlbGVjdG9yO1xufVxuXG5mdW5jdGlvbiByYWZBc3luYygpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlc29sdmUpOyAvLyBmYXN0ZXIgdGhhbiBzZXQgdGltZSBvdXRcbiAgICB9KTtcbn1cblxuLyogQHBhcmFtIHtBcnJheX0gbnVtYmVycyBBbiBhcnJheSBvZiBudW1iZXJzLlxuICogQHJldHVybiB7TnVtYmVyfSBUaGUgY2FsY3VsYXRlZCBhdmVyYWdlIChvciBtZWFuKSB2YWx1ZSBmcm9tIHRoZSBzcGVjaWZpZWRcbiAqICAgICBudW1iZXJzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVhbihudW1iZXJzOiBudW1iZXJbXSkge1xuICAgIGxldCB0b3RhbCA9IDA7XG4gICAgZm9yIChjb25zdCBudW1iZXIgb2YgbnVtYmVycykge1xuICAgICAgICB0b3RhbCArPSBudW1iZXI7XG4gICAgfVxuICAgIHJldHVybiB0b3RhbCAvIG51bWJlcnMubGVuZ3RoO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFRpbWVzdGFtcFRvTG9jYWxab25lKHRpbWVzdGFtcDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xuICAgIGNvbnN0IGxvY2FsT2Zmc2V0ID0gLTEgKiBzZWxlY3RlZERhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwO1xuICAgIGNvbnN0IHN0YW1wID0gdGltZXN0YW1wICsgbG9jYWxPZmZzZXQ7XG4gICAgcmV0dXJuIHN0YW1wO1xufVxuXG4vKipcbiAqIFJldHVybiBzdHJpbmcgZm9yIHBlcmlvZCBvZiB0aW1lLiBQYXJhbWV0ZXJzIGFyZSBEYXRlVGltZSBvYmplY3RzIG9mIGx1eG9uIGxpYnJhcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2xhdGVEYXRlUGVyaW9kKFxuICAgIHRyYW5zbGF0ZVNlcnZpY2U6IGFueSxcbiAgICBkYXRlU3RhcnRQZXJpb2Q6IGFueSxcbiAgICBkYXRlRW5kUGVyaW9kOiBhbnksXG4pOiBzdHJpbmcge1xuICAgIGNvbnN0IGxvY2FsZSA9IGdldExvY2FsZUxvbmcodHJhbnNsYXRlU2VydmljZSk7XG4gICAgcmV0dXJuIGAke2RhdGVTdGFydFBlcmlvZC50b0xvY2FsZVN0cmluZyh7XG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgbW9udGg6IFwibG9uZ1wiLFxuICAgICAgICBkYXk6IFwiMi1kaWdpdFwiLFxuICAgIH0pfSAtICR7ZGF0ZUVuZFBlcmlvZC50b0xvY2FsZVN0cmluZyh7XG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgbW9udGg6IFwibG9uZ1wiLFxuICAgICAgICBkYXk6IFwiMi1kaWdpdFwiLFxuICAgIH0pfSBgO1xufVxuXG5cbi8qKlxuKiBSZXR1cm4gbG9jYWwgaW4gdGhlIGNhbm9uaWNhbCBmb3JtOiBcImVuLUdCXCIsIFwiZnItRlJcIlxuKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVMb25nKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSk6IHN0cmluZyB7XG4gICAgbGV0IGxhbmcgPSBnZXRDdXJyZW50TGFuZyh0cmFuc2xhdGUpO1xuXG4gICAgaWYgKGxhbmcgPT09IFwiZW5cIikge1xuICAgICAgICByZXR1cm4gXCJlbi1HQlwiO1xuICAgIH1cbiAgICByZXR1cm4gYCR7bGFuZ30tJHtsYW5nLnRvVXBwZXJDYXNlKCl9YDtcbn1cblxuLyoqXG4gKiBSZXR1cm4gbG9jYWwgaW4gdGhlIHNob3J0IGZvcm06IFwiZW5cIiwgXCJmclwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVTaG9ydCh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRDdXJyZW50TGFuZyh0cmFuc2xhdGUpO1xufVxuXG4vKipcbiAqIEZvcm1hdCBzdHJpbmcgdG8gbG93ZXJjYXNlLCBubyBzcGFjZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ1RvTG93ZXJjYXNlTm9TcGFjZXMoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgd29yZHMgPSBpbnB1dC50b0xvd2VyQ2FzZSgpLnNwbGl0KC9cXHMrLyk7XG4gICAgcmV0dXJuIHdvcmRzLmpvaW4oXCJcIik7XG59XG5cbi8qKlxuICogVGVzdCBpZiB0aGUgb2JqZWN0ID09PSB7fVxuICogQHBhcmFtIG9iaiBvYmplY3Qge2tleTp2YWx1ZX1cbiAqIEByZXR1cm5zIGJvb2xlYW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHlPYmplY3Qob2JqZWN0KTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCB4IGluIG9iamVjdCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2h1ZmZsZUFycmF5KGFycmF5OiBhbnlbXSkge1xuICAgIGNvbnN0IG5ld0FycmF5ID0gWy4uLmFycmF5XTtcbiAgICBmb3IgKGxldCBpbmRleCA9IGFycmF5Lmxlbmd0aCAtIDE7IGluZGV4ID4gMDsgaW5kZXgtLSkge1xuICAgICAgICBjb25zdCBpbmRleE5ldyA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChpbmRleCArIDEpKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIFtuZXdBcnJheVtpbmRleF0sIG5ld0FycmF5W2luZGV4TmV3XV0gPSBbXG4gICAgICAgICAgICBuZXdBcnJheVtpbmRleE5ld10sXG4gICAgICAgICAgICBuZXdBcnJheVtpbmRleF0sXG4gICAgICAgIF07XG4gICAgfVxuICAgIHJldHVybiBuZXdBcnJheTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG51bWJlclRvRGF0ZVN0cmluZyh0aW1lc3RhbXA6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QganNEYXRlID0gbmV3IERhdGUodGltZXN0YW1wKTtcbiAgICByZXR1cm4ganNEYXRlLnRvTG9jYWxlU3RyaW5nKFwiZnItRlJcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkdXJhdGlvblRvU3RyaW5nKFxuICAgIGR1cmF0aW9uOiBudW1iZXIsXG4gICAgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuKTogc3RyaW5nIHtcbiAgICBjb25zdCBkYXlzID0gTWF0aC5mbG9vcihkdXJhdGlvbiAvIDM2MDAgLyAyNCk7XG4gICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKChkdXJhdGlvbiAtIGRheXMgKiAyNCAqIDM2MDApIC8gMzYwMCk7XG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoKGR1cmF0aW9uICUgMzYwMCkgLyA2MCk7XG4gICAgY29uc3Qgc2Vjb25kcyA9IE1hdGguZmxvb3IoZHVyYXRpb24gJSA2MCk7XG5cbiAgICBjb25zdCBkYXlzU3RyaW5nID0gdHJhbnNsYXRlLmluc3RhbnQoXCJkYXkocylcIik7XG4gICAgY29uc3QgaG91cnNTdHJpbmcgPSB0cmFuc2xhdGUuaW5zdGFudChcImhvdXIocylcIik7XG4gICAgY29uc3Qgb25lSG91clN0cmluZyA9IHRyYW5zbGF0ZS5pbnN0YW50KFwiaG91clwiKTtcbiAgICBjb25zdCBtaW51dGVzU3RyaW5nID0gdHJhbnNsYXRlLmluc3RhbnQoXCJtaW51dGUocylcIik7XG4gICAgY29uc3Qgc2Vjb25kc1N0cmluZyA9IHRyYW5zbGF0ZS5pbnN0YW50KFwic2Vjb25kKHMpXCIpO1xuXG4gICAgaWYgKGR1cmF0aW9uID4gMzYwMCAqIDI0ICogNykge1xuICAgICAgICByZXR1cm4gYCR7ZGF5c30gJHtkYXlzU3RyaW5nfWA7XG4gICAgfVxuICAgIGlmIChkdXJhdGlvbiA+IDM2MDAgKiAyNCkge1xuICAgICAgICByZXR1cm4gYCR7ZGF5c30gJHtkYXlzU3RyaW5nfSAke2hvdXJzfSAke2hvdXJzU3RyaW5nfWA7XG4gICAgfVxuICAgIGlmIChkdXJhdGlvbiA9PT0gMzYwMCkge1xuICAgICAgICByZXR1cm4gYCR7aG91cnN9ICR7b25lSG91clN0cmluZ31gO1xuICAgIH1cbiAgICBpZiAoZHVyYXRpb24gPiAzNjAwKSB7XG4gICAgICAgIGlmIChtaW51dGVzID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7aG91cnN9ICR7aG91cnNTdHJpbmd9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYCR7aG91cnN9ICR7aG91cnNTdHJpbmd9ICR7bWludXRlc30gJHttaW51dGVzU3RyaW5nfWA7XG4gICAgfVxuICAgIGlmIChkdXJhdGlvbiA+PSA2MCkge1xuICAgICAgICBpZiAoc2Vjb25kcyA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGAke21pbnV0ZXN9ICR7bWludXRlc1N0cmluZ31gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgJHttaW51dGVzfSAke21pbnV0ZXNTdHJpbmd9ICR7c2Vjb25kc30gJHtzZWNvbmRzU3RyaW5nfWA7XG4gICAgfVxuICAgIHJldHVybiBgJHtzZWNvbmRzfSAke3NlY29uZHNTdHJpbmd9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvaW50VG9TdHJpbmcocG9pbnQ6IHsgeDogbnVtYmVyLCB5OiBudW1iZXIsIHo6IG51bWJlciB9KTogc3RyaW5nIHtcbiAgICBjb25zdCB4ID0gcG9pbnQueC50b0ZpeGVkKDMpO1xuICAgIGNvbnN0IHkgPSBwb2ludC55LnRvRml4ZWQoMyk7XG4gICAgY29uc3QgeiA9IHBvaW50LnoudG9GaXhlZCgzKTtcblxuICAgIHJldHVybiBgeyB4OiAke3h9LCB5OiAke3l9LCB6OiAke3p9IH1gO1xufVxuXG5cbiJdfQ==
522
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWNvcmUvc3JjL2xpYi9oZWxwZXJzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDekcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFxQixXQUFXLEVBQUUsTUFBTSxFQUFXLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQXVCdkc7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLFFBQWdCO0lBQ2xELElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsSUFBSSxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQzVCLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQztRQUM5RSxNQUFNLFNBQVMsR0FBcUIsRUFBRSxDQUFDO1FBQ3ZDLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQ2xDLFNBQVMsQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFF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Q0FBQztBQUN6QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxLQUEwQztJQUNwRSxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU3QixPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztBQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7IE1vZGFsU3dpdGNoVmlzaXRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL21vZGFsLXN3aXRjaC12aXNpdC9tb2RhbC1zd2l0Y2gtdmlzaXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IGRvd25sb2FkRmlsZUFzT2JqZWN0IH0gZnJvbSBcIi4vc2VydmljZXMvczMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBFcXVpcG1lbnREb2N1bWVudCwgTGV2ZWxTdGF0dXMsIExvY2FsZSwgTWlzc2lvbiwgUG9pVHlwZSwgUm9sZVN0YXR1cyB9IGZyb20gXCIuL3R5cGVzLnNlcnZpY2VcIjtcclxuXHJcbi8qKlxyXG4gKiBNYXBzIHRoZSBjb29yZGluYXRlIHNwYWNlIFBPSSBwb3NpdGlvbnMgd2VyZSBjYXB0dXJlZCBpbiBvbnRvIHRoZSBsb2FkZWQgbW9kZWwncyBvd24gc3BhY2UuXHJcbiAqXHJcbiAqIFRhZyBjb29yZGluYXRlcyBjb21lIGZyb20gd2hpY2hldmVyIHZpZXdlciBjcmVhdGVkIHRoZW0gLSB0eXBpY2FsbHkgTWF0dGVycG9ydCAtIGFuZCB0aGUgLmdsYiBpc1xyXG4gKiBhIHNlcGFyYXRlIGNhcHR1cmUgd2l0aCBpdHMgb3duIG9yaWdpbiwgYXhlcyBhbmQgdW5pdHMuIFdpdGhvdXQgdGhpcywgYSB0YWcgY3JlYXRlZCBpbiBvbmUgdmlld2VyXHJcbiAqIGxhbmRzIGluIHRoZSB3cm9uZyBwbGFjZSBpbiB0aGUgb3RoZXIgZXZlbiB0aG91Z2ggYm90aCByZWFkIHRoZSBzYW1lIHJlY29yZC5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGhyZWVKc0FsaWdubWVudCB7XHJcbiAgICB0cmFuc2xhdGlvbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlciB9O1xyXG4gICAgLyoqIEV1bGVyIGFuZ2xlcyBpbiByYWRpYW5zLCBhcHBsaWVkIFhZWi4gKi9cclxuICAgIHJvdGF0aW9uPzogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyIH07XHJcbiAgICBzY2FsZT86IG51bWJlcjtcclxufVxyXG5cclxuLyoqIFdoZXJlIHRoZSBjYW1lcmEgc3RhcnRzIHdoZW4gYSBUaHJlZS5qcyB2aXNpdCBpcyBvcGVuZWQuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGhyZWVKc1BsYWNlbWVudCB7XHJcbiAgICBjYW1lcmFQb3NpdGlvbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlciB9O1xyXG4gICAgcm90YXRpb24/OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXIgfTtcclxuICAgIGFsaWdubWVudD86IFRocmVlSnNBbGlnbm1lbnQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQYXJzZXMgdGhlIHBsYWNlbWVudCBzdG9yZWQgaW4gYSBUaHJlZS5qcyBjYXB0dXJlJ3MgbWV0YWRhdGEsIG9yIG51bGwgd2hlbiB0aGVyZSBpcyBub25lLlxyXG4gKlxyXG4gKiBCb3RoIHRoZSBpbXBvcnQgKHdyaXRpbmcgdGhlIG5hdmlnYXRpb24gZW50cnkpIGFuZCB0aGUgdmlld2VyIChmcmFtaW5nIHRoZSBjYW1lcmEpIG5lZWQgdGhpcywgc29cclxuICogaXQgbGl2ZXMgaGVyZSByYXRoZXIgdGhhbiBvbiBlaXRoZXIgc2VydmljZS4gUGxhY2VtZW50IGlzIG9wdGlvbmFsIC0gdGhlIHZpZXdlciBmcmFtZXMgdGhlIG1vZGVsXHJcbiAqIGF1dG9tYXRpY2FsbHkgd2l0aG91dCBpdCAtIHNvIHVudXNhYmxlIG1ldGFkYXRhIGlzIHdhcm5lZCBhYm91dCBhbmQgZHJvcHBlZCwgbmV2ZXIgdGhyb3duLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVGhyZWVKc1BsYWNlbWVudChtZXRhZGF0YTogc3RyaW5nKTogVGhyZWVKc1BsYWNlbWVudCB8IG51bGwge1xyXG4gICAgaWYgKCFtZXRhZGF0YSB8fCAhbWV0YWRhdGEudHJpbSgpKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UobWV0YWRhdGEpO1xyXG4gICAgICAgIGNvbnN0IGlzVmVjdG9yID0gKHZhbHVlOiBhbnkpID0+XHJcbiAgICAgICAgICAgIHZhbHVlICYmIFtcInhcIiwgXCJ5XCIsIFwielwiXS5ldmVyeSgoYXhpcykgPT4gdHlwZW9mIHZhbHVlW2F4aXNdID09PSBcIm51bWJlclwiKTtcclxuICAgICAgICBjb25zdCBwbGFjZW1lbnQ6IFRocmVlSnNQbGFjZW1lbnQgPSB7fTtcclxuICAgICAgICBpZiAoaXNWZWN0b3IocGFyc2VkLmNhbWVyYVBvc2l0aW9uKSkge1xyXG4gICAgICAgICAgICBwbGFjZW1lbnQuY2FtZXJhUG9zaXRpb24gPSBwYXJzZWQuY2FtZXJhUG9zaXRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpc1ZlY3RvcihwYXJzZWQucm90YXRpb24pKSB7XHJcbiAgICAgICAgICAgIHBsYWNlbWVudC5yb3RhdGlvbiA9IHBhcnNlZC5yb3RhdGlvbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IHBhcnNlZC5hbGlnbm1lbnQ7XHJcbiAgICAgICAgaWYgKHNvdXJjZSkge1xyXG4gICAgICAgICAgICBjb25zdCBhbGlnbm1lbnQ6IFRocmVlSnNBbGlnbm1lbnQgPSB7fTtcclxuICAgICAgICAgICAgaWYgKGlzVmVjdG9yKHNvdXJjZS50cmFuc2xhdGlvbikpIHtcclxuICAgICAgICAgICAgICAgIGFsaWdubWVudC50cmFuc2xhdGlvbiA9IHNvdXJjZS50cmFuc2xhdGlvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaXNWZWN0b3Ioc291cmNlLnJvdGF0aW9uKSkge1xyXG4gICAgICAgICAgICAgICAgYWxpZ25tZW50LnJvdGF0aW9uID0gc291cmNlLnJvdGF0aW9uO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIFNjYWxlIDAgd291bGQgY29sbGFwc2UgZXZlcnkgdGFnIG9udG8gYSBwb2ludCwgc28gdHJlYXQgaXQgYXMgdW5zZXQgcmF0aGVyIHRoYW4gaG9ub3VyIGl0LlxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHNvdXJjZS5zY2FsZSA9PT0gXCJudW1iZXJcIiAmJiBzb3VyY2Uuc2NhbGUgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBhbGlnbm1lbnQuc2NhbGUgPSBzb3VyY2Uuc2NhbGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGFsaWdubWVudCkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50LmFsaWdubWVudCA9IGFsaWdubWVudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHBsYWNlbWVudC5jYW1lcmFQb3NpdGlvbiB8fCBwbGFjZW1lbnQucm90YXRpb24gfHwgcGxhY2VtZW50LmFsaWdubWVudCA/IHBsYWNlbWVudCA6IG51bGw7XHJcbiAgICB9IGNhdGNoIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oXCJJZ25vcmluZyB1bnBhcnNlYWJsZSBUaHJlZS5qcyBwbGFjZW1lbnQgbWV0YWRhdGE6XCIsIG1ldGFkYXRhKTtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3RhbmNlQmV0d2VlblR3b1BvaW50cyhzdGFydFBvaW50LCBlbmRQb2ludCkge1xyXG4gICAgY29uc3QgZHggPSBlbmRQb2ludC54IC0gc3RhcnRQb2ludC54O1xyXG4gICAgY29uc3QgZHkgPSBlbmRQb2ludC55IC0gc3RhcnRQb2ludC55O1xyXG4gICAgY29uc3QgZHogPSBlbmRQb2ludC56IC0gc3RhcnRQb2ludC56O1xyXG4gICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLnNxcnQoZHggKiBkeCArIGR5ICogZHkgKyBkeiAqIGR6KTtcclxuICAgIHJldHVybiBNYXRoLnJvdW5kKGRpc3RhbmNlICogMTAwKSAvIDEwMDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHBvaVR5cGVUb1N0cmluZyh0eXBlOiBQb2lUeXBlKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgIGNhc2UgUG9pVHlwZS5FUVVJUE1FTlQ6XHJcbiAgICAgICAgICAgIHJldHVybiBcImVxdWlwbWVudFwiO1xyXG4gICAgICAgIGNhc2UgUG9pVHlwZS5USUNLRVQ6XHJcbiAgICAgICAgICAgIHJldHVybiBcInRpY2tldFwiO1xyXG4gICAgICAgIGNhc2UgUG9pVHlwZS5EQVRBOlxyXG4gICAgICAgICAgICByZXR1cm4gXCJkYXRhXCI7XHJcbiAgICAgICAgY2FzZSBQb2lUeXBlLkRFU0s6XHJcbiAgICAgICAgICAgIHJldHVybiBcImRhdGFcIjtcclxuICAgICAgICBjYXNlIFBvaVR5cGUuSU5GT1JNQVRJT046XHJcbiAgICAgICAgICAgIHJldHVybiBcImluZm9ybWF0aW9uXCI7XHJcbiAgICAgICAgY2FzZSBQb2lUeXBlLk1FQVNVUkU6XHJcbiAgICAgICAgICAgIHJldHVybiBcIm1lYXN1cmVcIjtcclxuICAgICAgICBjYXNlIFBvaVR5cGUuUEVPUExFOlxyXG4gICAgICAgICAgICByZXR1cm4gXCJwZW9wbGVcIjtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXR1cm4gXCJ0aWNrZXRcIjtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHdhaXQodGltZW91dDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgICB0aW1lb3V0ID0gdGltZW91dCB8fCAyMDAwO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgfSwgdGltZW91dCk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHdhaXRVbnRpbCA9IChjb25kaXRpb246ICgpID0+IGJvb2xlYW4pID0+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGNvbmRpdGlvbigpKSB7XHJcbiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsSWQpO1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgMzApO1xyXG4gICAgfSk7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZW51bVRvQXJyYXkoZW51bWVyYWJsZTogYW55KSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZW51bWVyYWJsZSlcclxuICAgICAgICAuZmlsdGVyKCh2YWx1ZSkgPT4gaXNOYU4oTnVtYmVyKHZhbHVlKSkgPT09IHRydWUpXHJcbiAgICAgICAgLm1hcCgoa2V5KSA9PiBlbnVtZXJhYmxlW2tleV0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGV2ZWxzQmVsb3cobGV2ZWw6IExldmVsU3RhdHVzKTogTGV2ZWxTdGF0dXNbXSB7XHJcbiAgICBjb25zdCBhbGwgPSBbXHJcbiAgICAgICAgTGV2ZWxTdGF0dXMuTUlOSU1VTSxcclxuICAgICAgICBMZXZlbFN0YXR1cy5MT1csXHJcbiAgICAgICAgTGV2ZWxTdGF0dXMuTUVESVVNLFxyXG4gICAgICAgIExldmVsU3RhdHVzLkhJR0gsXHJcbiAgICAgICAgTGV2ZWxTdGF0dXMuTUFYSU1VTSxcclxuICAgIF07XHJcbiAgICBzd2l0Y2ggKGxldmVsKSB7XHJcbiAgICAgICAgY2FzZSBMZXZlbFN0YXR1cy5NQVhJTVVNOlxyXG4gICAgICAgICAgICByZXR1cm4gYWxsO1xyXG4gICAgICAgIGNhc2UgTGV2ZWxTdGF0dXMuSElHSDpcclxuICAgICAgICAgICAgYWxsLnNwbGljZSg0LCAxKTtcclxuICAgICAgICAgICAgcmV0dXJuIGFsbDtcclxuICAgICAgICBjYXNlIExldmVsU3RhdHVzLk1FRElVTTpcclxuICAgICAgICAgICAgYWxsLnNwbGljZSgzLCAyKTtcclxuICAgICAgICAgICAgcmV0dXJuIGFsbDtcclxuICAgICAgICBjYXNlIExldmVsU3RhdHVzLkxPVzpcclxuICAgICAgICAgICAgcmV0dXJuIFtMZXZlbFN0YXR1cy5NSU5JTVVNLCBMZXZlbFN0YXR1cy5MT1ddO1xyXG4gICAgICAgIGNhc2UgTGV2ZWxTdGF0dXMuTUlOSU1VTTpcclxuICAgICAgICAgICAgcmV0dXJuIFtMZXZlbFN0YXR1cy5NSU5JTVVNXTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXR1cm4gW0xldmVsU3RhdHVzLk1JTklNVU1dO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGlnaGVzdExldmVsRm9yTWlzc2lvbnMobWlzc2lvbnM6IE1pc3Npb25bXSk6IExldmVsU3RhdHVzIHtcclxuICAgIGxldCBsYXRlc3RWaXNpYmxlTGV2ZWxzID0gW0xldmVsU3RhdHVzLk1JTklNVU1dO1xyXG4gICAgZm9yIChjb25zdCBtIG9mIG1pc3Npb25zKSB7XHJcbiAgICAgICAgY29uc3QgdmlzaWJsZUxldmVscyA9IGdldExldmVsc0JlbG93KG0ubGV2ZWwpO1xyXG4gICAgICAgIGlmICh2aXNpYmxlTGV2ZWxzLmxlbmd0aCA+IGxhdGVzdFZpc2libGVMZXZlbHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGxhdGVzdFZpc2libGVMZXZlbHMgPSB2aXNpYmxlTGV2ZWxzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHN3aXRjaCAobGF0ZXN0VmlzaWJsZUxldmVscy5sZW5ndGgpIHtcclxuICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICAgIHJldHVybiBMZXZlbFN0YXR1cy5NSU5JTVVNO1xyXG4gICAgICAgIGNhc2UgMjpcclxuICAgICAgICAgICAgcmV0dXJuIExldmVsU3RhdHVzLkxPVztcclxuICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgICAgIHJldHVybiBMZXZlbFN0YXR1cy5NRURJVU07XHJcbiAgICAgICAgY2FzZSA0OlxyXG4gICAgICAgICAgICByZXR1cm4gTGV2ZWxTdGF0dXMuSElHSDtcclxuICAgICAgICBjYXNlIDU6XHJcbiAgICAgICAgICAgIHJldHVybiBMZXZlbFN0YXR1cy5NQVhJTVVNO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJldHVybiBMZXZlbFN0YXR1cy5NSU5JTVVNO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGlnaGVzdFJvbGVGb3JNaXNzaW9ucyhtaXNzaW9uczogTWlzc2lvbltdKTogUm9sZVN0YXR1cyB7XHJcbiAgICBsZXQgaGlnaGVzdFJvbGUgPSBSb2xlU3RhdHVzLlZJU0lUT1I7XHJcbiAgICBmb3IgKGNvbnN0IG0gb2YgbWlzc2lvbnMpIHtcclxuICAgICAgICBpZiAobS5yb2xlID09PSBSb2xlU3RhdHVzLkFETUlOKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBSb2xlU3RhdHVzLkFETUlOO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaGlnaGVzdFJvbGUgPT09IFJvbGVTdGF0dXMuT1dORVIpIHtcclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChtLnJvbGUgPT09IFJvbGVTdGF0dXMuT1dORVIpIHtcclxuICAgICAgICAgICAgaGlnaGVzdFJvbGUgPSBSb2xlU3RhdHVzLk9XTkVSO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobS5yb2xlID09PSBSb2xlU3RhdHVzLk1BTkFHRVIpIHtcclxuICAgICAgICAgICAgaGlnaGVzdFJvbGUgPSBSb2xlU3RhdHVzLk1BTkFHRVI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgbS5yb2xlID09PSBSb2xlU3RhdHVzLlNFUlZJQ0UgJiZcclxuICAgICAgICAgICAgaGlnaGVzdFJvbGUgIT09IFJvbGVTdGF0dXMuTUFOQUdFUlxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICBoaWdoZXN0Um9sZSA9IFJvbGVTdGF0dXMuU0VSVklDRTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBtLnJvbGUgPT09IFJvbGVTdGF0dXMuT0NDVVBBTlQgJiZcclxuICAgICAgICAgICAgaGlnaGVzdFJvbGUgPT09IFJvbGVTdGF0dXMuVklTSVRPUlxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICBoaWdoZXN0Um9sZSA9IFJvbGVTdGF0dXMuT0NDVVBBTlQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChtLnJvbGUgPT09IFJvbGVTdGF0dXMuR1VJREVfTVVTRVVNKSB7XHJcbiAgICAgICAgICAgIGhpZ2hlc3RSb2xlID0gUm9sZVN0YXR1cy5HVUlERV9NVVNFVU07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChtLnJvbGUgPT09IFJvbGVTdGF0dXMuVklTSVRPUl9NVVNFVU0pIHtcclxuICAgICAgICAgICAgaGlnaGVzdFJvbGUgPSBSb2xlU3RhdHVzLlZJU0lUT1JfTVVTRVVNO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBoaWdoZXN0Um9sZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFJvbGVzQmVsb3dGb3JNYW5hZ2VyKHJvbGU6IFJvbGVTdGF0dXMpOiBSb2xlU3RhdHVzW10ge1xyXG4gICAgY29uc3QgYWxsID0gW1xyXG4gICAgICAgIFJvbGVTdGF0dXMuVklTSVRPUixcclxuICAgICAgICBSb2xlU3RhdHVzLk9DQ1VQQU5ULFxyXG4gICAgICAgIFJvbGVTdGF0dXMuU0VSVklDRSxcclxuICAgICAgICBSb2xlU3RhdHVzLk1BTkFHRVIsXHJcbiAgICAgICAgUm9sZVN0YXR1cy5PV05FUixcclxuICAgICAgICBSb2xlU3RhdHVzLkFETUlOLFxyXG4gICAgXTtcclxuICAgIGNvbnN0IG11c2V1bSA9IFtSb2xlU3RhdHVzLlZJU0lUT1JfTVVTRVVNLCBSb2xlU3RhdHVzLkdVSURFX01VU0VVTV07XHJcbiAgICBzd2l0Y2ggKHJvbGUpIHtcclxuICAgICAgICBjYXNlIFJvbGVTdGF0dXMuQURNSU46XHJcbiAgICAgICAgICAgIHJldHVybiBbLi4uYWxsLCAuLi5tdXNldW1dO1xyXG4gICAgICAgIGNhc2UgUm9sZVN0YXR1cy5PV05FUjpcclxuICAgICAgICAgICAgYWxsLnNwbGljZSg1LCAxKTtcclxuICAgICAgICAgICAgcmV0dXJuIGFsbDtcclxuICAgICAgICBjYXNlIFJvbGVTdGF0dXMuTUFOQUdFUjpcclxuICAgICAgICAgICAgYWxsLnNwbGljZSg0LCAyKTtcclxuICAgICAgICAgICAgcmV0dXJuIGFsbDtcclxuICAgICAgICBjYXNlIFJvbGVTdGF0dXMuR1VJREVfTVVTRVVNOlxyXG4gICAgICAgICAgICByZXR1cm4gbXVzZXVtO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJldHVybiBhbGwuc3BsaWNlKDQsIDIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyVW5pcXVlQXJyYXlCeUlEKGFycmF5T2ZPYmplY3RzOiBhbnlbXSk6IGFueVtdIHtcclxuICAgIHJldHVybiBhcnJheU9mT2JqZWN0cy5maWx0ZXIoXHJcbiAgICAgICAgKHYsIGluZGV4LCBhKSA9PiBhLmZpbmRJbmRleCgodCkgPT4gdC5pZCA9PT0gdi5pZCkgPT09IGluZGV4LFxyXG4gICAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZU51bGxLZXlzRnJvbU9iamVjdChvYmplY3Q6IE9iamVjdCkge1xyXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqZWN0KSkge1xyXG4gICAgICAgIGlmIChvYmplY3Rba2V5XSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICBkZWxldGUgb2JqZWN0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogVGVzdCBpZiBhIGRhdGUgaGFzIGV4cGlyZWRcclxuICogQHBhcmFtIGRhdGVcclxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZGF0ZSBoYXMgZXhwaXJlZCwgZmFsc2Ugb3RoZXJ3aXNlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZGF0ZUhhc0V4cGlyZWQoXHJcbiAgICBkYXRlOiBzdHJpbmcgfCBEYXRlIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCxcclxuKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoZGF0ZSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlKSA8PSBuZXcgRGF0ZSgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nTG9jYWxlVG9FbnVtKGxvY2FsZTogc3RyaW5nKTogTG9jYWxlIHtcclxuICAgIHN3aXRjaCAobG9jYWxlKSB7XHJcbiAgICAgICAgY2FzZSBcImVuXCI6XHJcbiAgICAgICAgICAgIHJldHVybiBMb2NhbGUuRU47XHJcbiAgICAgICAgY2FzZSBcImZyXCI6XHJcbiAgICAgICAgICAgIHJldHVybiBMb2NhbGUuRlI7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgcmV0dXJuIExvY2FsZS5FTjtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRNZXRhRm9ySW1hZ2UodXJsKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XHJcblxyXG4gICAgICAgIGltZy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHJlc29sdmUoaW1nKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpbWcuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsICgpID0+IHJlamVjdCgpKTtcclxuICAgICAgICBpbWcuc3JjID0gdXJsO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzb3J0QWxwaGFiZXRpY2FsbHlPbk5hbWUoYXJyYXk6IHsgbmFtZTogc3RyaW5nOyB9W10pOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gYXJyYXkuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZEVtYWlsKGVtYWlsOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHJlID1cclxuICAgICAgICAvXigoW15cXHNcIigpLC46Ozw+QFtcXFxcXFxdXSsoXFwuW15cXHNcIigpLC46Ozw+QFtcXFxcXFxdXSspKil8KFwiLitcIikpQCgoXFxbKD86XFxkezEsM31cXC4pezN9XFxkezEsM31dKXwoKFtcXGRBLVphLXpcXC1dK1xcLikrW0EtWmEtel17Mix9KSkkLztcclxuICAgIHJldHVybiByZS50ZXN0KGVtYWlsKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkQmxvYihibG9iLCBmaWxlbmFtZSkge1xyXG4gICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcclxuICAgIGEuaHJlZiA9IHVybDtcclxuICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZSB8fCBcImRvd25sb2FkXCI7XHJcbiAgICBjb25zdCBjbGlja0hhbmRsZXIgPSAoKSA9PiB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcclxuICAgICAgICAgICAgYS5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgY2xpY2tIYW5kbGVyKTtcclxuICAgICAgICB9LCAxNTApO1xyXG4gICAgfTtcclxuICAgIGEuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGNsaWNrSGFuZGxlciwgZmFsc2UpO1xyXG4gICAgYS5jbGljaygpO1xyXG4gICAgcmV0dXJuIGE7XHJcbn1cclxuXHJcbi8qXHJcbiAgICBPcGVuIG1vZGFsIGlmIG9uZSBoYXMgdG8gc3dpdGNoIHZpcnR1YWwgdmlzaXRcclxuKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG9wZW5Nb2RhbEZvclZpc2l0U3dpdGNoKFxyXG4gICAgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIG1vZGVsM0Q6IHN0cmluZyxcclxuICAgIHNwYWNlSUQ6IHN0cmluZyxcclxuICAgIGRhdGFUb01vdmU6IHsgc3dlZXBUb01vdmU6IHN0cmluZywgcm90YXRpb246IGFueTsgfSB8IG51bGwgPSBudWxsXHJcbikge1xyXG4gICAgY29uc3QgbW9kYWxSZWZlcmVuY2UgPSBtb2RhbFNlcnZpY2Uub3BlbihNb2RhbFN3aXRjaFZpc2l0Q29tcG9uZW50KTtcclxuICAgIG1vZGFsUmVmZXJlbmNlLmNvbXBvbmVudEluc3RhbmNlLmNvbnRlbnQgPVxyXG4gICAgICAgIFwiVGhpcyBvYmplY3QgYmVsb25ncyB0byBhbm90aGVyIDNEIHZpc2l0LiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gc3dpdGNoIHRoZSB2aXNpdD9cIjtcclxuICAgIG1vZGFsUmVmZXJlbmNlLmNvbXBvbmVudEluc3RhbmNlLm1vZGVsM0QgPSBtb2RlbDNEO1xyXG4gICAgbW9kYWxSZWZlcmVuY2UuY29tcG9uZW50SW5zdGFuY2Uuc3BhY2VJRCA9IHNwYWNlSUQ7XHJcbiAgICBpZiAoZGF0YVRvTW92ZSkge1xyXG4gICAgICAgIG1vZGFsUmVmZXJlbmNlLmNvbXBvbmVudEluc3RhbmNlLmRhdGFUb01vdmUgPSBkYXRhVG9Nb3ZlO1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRMYW5nKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSk6IHN0cmluZyB7XHJcbiAgICBsZXQgbGFuZyA9IHRyYW5zbGF0ZS5nZXRDdXJyZW50TGFuZygpIHx8IHRyYW5zbGF0ZS5nZXRGYWxsYmFja0xhbmcoKSB8fCBcImZyXCI7XHJcblxyXG4gICAgLy8gQ2xlYW4gdXAgbGVhZGluZyBtZXNzXHJcbiAgICBsYW5nID0gbGFuZy5yZXBsYWNlKC9eW18tXSsvLCAnJyk7XHJcblxyXG4gICAgLy8gSGFuZGxlIGZyX0ZSIG9yIGZyLUZSICh0YWtlIHByaW1hcnkgbGFuZ3VhZ2UpXHJcbiAgICBpZiAobGFuZy5pbmNsdWRlcyhcIl9cIikpIHtcclxuICAgICAgICBsYW5nID0gbGFuZy5zcGxpdChcIl9cIilbMF07XHJcbiAgICB9XHJcbiAgICBpZiAobGFuZy5pbmNsdWRlcyhcIi1cIikpIHtcclxuICAgICAgICBsYW5nID0gbGFuZy5zcGxpdChcIi1cIilbMF07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRW5zdXJlIDItbGV0dGVyIGNvZGUgKElTTyA2MzktMSlcclxuICAgIGlmIChsYW5nLmxlbmd0aCA+IDIpIHtcclxuICAgICAgICBsYW5nID0gbGFuZy5zdWJzdHJpbmcoMCwgMik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGxhbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gYSBzdHJpbmcgb2YgYSBnaXZlbiBkYXRlIHRpbWUgaW4gbG9jYWwgZm9ybWF0LlxyXG4gKiBUaGUgZm9ybWF0IGlzIGRldGVybWluZWQgYnkgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZGF0ZVRpbWVUb0xvY2FsU3RyaW5nKFxyXG4gICAgZGF0ZTogbnVtYmVyIHwgc3RyaW5nIHwgRGF0ZSxcclxuICAgIHRyYW5zbGF0ZT86IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBtb2RlPyxcclxuKTogc3RyaW5nIHtcclxuICAgIGxldCBsYW5nID0gXCJlbi1FTlwiO1xyXG4gICAgaWYgKHRyYW5zbGF0ZSkge1xyXG4gICAgICAgIGxhbmcgPSBnZXRDdXJyZW50TGFuZyh0cmFuc2xhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBvcHRpb25zOiB7XHJcbiAgICAgICAgbW9udGg/O1xyXG4gICAgICAgIHllYXI/O1xyXG4gICAgICAgIGRheT87XHJcbiAgICAgICAgaG91cj87XHJcbiAgICAgICAgbWludXRlPztcclxuICAgICAgICBzZWNvbmQ/O1xyXG4gICAgICAgIGRhdGVTdHlsZT87XHJcbiAgICAgICAgdGltZVN0eWxlPztcclxuICAgICAgICB3ZWVrZGF5PztcclxuICAgICAgICB0aW1lWm9uZT87XHJcbiAgICAgICAgdGltZVpvbmVOYW1lPztcclxuICAgIH07XHJcbiAgICBzd2l0Y2ggKG1vZGUpIHtcclxuICAgICAgICBjYXNlIFwiZGF5X251bWVyaWNcIjpcclxuICAgICAgICAgICAgb3B0aW9ucyA9IHsgZGF5OiBcIm51bWVyaWNcIiB9O1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiZGF5XCI6XHJcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IHdlZWtkYXk6IFwibG9uZ1wiIH07XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJkYXRlXCI6XHJcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IGRhdGVTdHlsZTogXCJsb25nXCIgfTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcInNob3J0X2RhdGVfdGltZVwiOlxyXG4gICAgICAgICAgICBvcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgeWVhcjogXCIyLWRpZ2l0XCIsXHJcbiAgICAgICAgICAgICAgICBtb250aDogXCIyLWRpZ2l0XCIsXHJcbiAgICAgICAgICAgICAgICBkYXk6IFwiMi1kaWdpdFwiLFxyXG4gICAgICAgICAgICAgICAgaG91cjogXCIyLWRpZ2l0XCIsXHJcbiAgICAgICAgICAgICAgICBtaW51dGU6IFwiMi1kaWdpdFwiLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwidGltZVwiOlxyXG4gICAgICAgICAgICBvcHRpb25zID0geyBob3VyOiBcIm51bWVyaWNcIiwgbWludXRlOiBcIm51bWVyaWNcIiB9O1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiZGF5X3RpbWVfem9uZVwiOlxyXG4gICAgICAgICAgICBvcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgd2Vla2RheTogXCJsb25nXCIsXHJcbiAgICAgICAgICAgICAgICB5ZWFyOiBcIm51bWVyaWNcIixcclxuICAgICAgICAgICAgICAgIG1vbnRoOiBcImxvbmdcIixcclxuICAgICAgICAgICAgICAgIGRheTogXCJudW1lcmljXCIsXHJcbiAgICAgICAgICAgICAgICBob3VyOiBcIm51bWVyaWNcIixcclxuICAgICAgICAgICAgICAgIG1pbnV0ZTogXCJudW1lcmljXCIsXHJcbiAgICAgICAgICAgICAgICB0aW1lWm9uZU5hbWU6IFwic2hvcnRPZmZzZXRcIixcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgb3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgIGRhdGVTdHlsZTogXCJsb25nXCIsXHJcbiAgICAgICAgICAgICAgICB0aW1lU3R5bGU6IFwic2hvcnRcIixcclxuICAgICAgICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlKS50b0xvY2FsZVN0cmluZyhsYW5nLCBvcHRpb25zKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbXBhcmVzIHR3byBzdHJpbmcgYXJyYXlzXHJcbiAqIEBwYXJhbSBhcnJheTFcclxuICogQHBhcmFtIGFycmF5MlxyXG4gKiBAcmV0dXJuc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5c0NvbnRhaW5TYW1lRWxlbWVudHMoXHJcbiAgICBhcnJheTE6IHN0cmluZ1tdLFxyXG4gICAgYXJyYXkyOiBzdHJpbmdbXSxcclxuKTogYm9vbGVhbiB7XHJcbiAgICBhcnJheTEuc29ydCgpO1xyXG4gICAgYXJyYXkyLnNvcnQoKTtcclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhcnJheTEpID09PSBKU09OLnN0cmluZ2lmeShhcnJheTIpO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFZpc2l0VXJsKGN1cnJlbnRVcmw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBwYXRoID0gY3VycmVudFVybC5zcGxpdChcIi9cIik7XHJcbiAgICBwYXRoLnNwbGljZSgzLCBwYXRoLmxlbmd0aCAtIDIpO1xyXG4gICAgcmV0dXJuIHBhdGguam9pbihcIi9cIik7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBFeHRyYWN0IHNwYWNlSUQgZnJvbSB1cmwgd2hlbiBpbiB2aXNpdCAzRFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFNwYWNlSURGcm9tVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHZpc2l0VXJsID0gZ2V0VmlzaXRVcmwodXJsKTtcclxuICAgIHJldHVybiB2aXNpdFVybC5zcGxpdChcIi9cIilbMl07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEb3dubG9hZCByZWxhdGVkXHJcbiAqL1xyXG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSBcImZpbGUtc2F2ZXJcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEZpbGUoZmlsZVVybDogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nKSB7XHJcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGZpbGVVcmwgKyBmaWxlTmFtZSwgZmlsZU5hbWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gb3BlbkRvY3VtZW50KGZpbGVVcmw6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZywgaWQ6IG51bWJlcikge1xyXG4gICAgd2luZG93Lm9wZW4oYCR7ZmlsZVVybCArIGZpbGVOYW1lfSNkb2M9JHtpZH1gLCBcIl9ibGFua1wiLCBcIlwiKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGRvd25sb2FkRXF1aXBtZW50RG9jdW1lbnQgPSBhc3luYyAoXHJcbiAgICBkb2N1bWVudF86IEVxdWlwbWVudERvY3VtZW50LFxyXG4pOiBQcm9taXNlPE9iamVjdCB8IHZvaWQ+ID0+IHtcclxuICAgIGNvbnN0IHNpZ25lZEZpbGUgPSBhd2FpdCBkb3dubG9hZEZpbGVBc09iamVjdChkb2N1bWVudF8udXJsKTtcclxuICAgIGlmIChzaWduZWRGaWxlKSB7XHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIGRvd25sb2FkQmxvYihzaWduZWRGaWxlLkJvZHksIGRvY3VtZW50Xy5maWxlbmFtZSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tFbGVtZW50QnlJZChzZWxlY3Rvcikge1xyXG4gICAgbGV0IHF1ZXJ5U2VsZWN0b3IgPSBudWxsO1xyXG4gICAgd2hpbGUgKHF1ZXJ5U2VsZWN0b3IgPT09IG51bGwpIHtcclxuICAgICAgICBhd2FpdCByYWZBc3luYygpO1xyXG4gICAgICAgIHF1ZXJ5U2VsZWN0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWxlY3Rvcik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcXVlcnlTZWxlY3RvcjtcclxufVxyXG5cclxuZnVuY3Rpb24gcmFmQXN5bmMoKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVzb2x2ZSk7IC8vIGZhc3RlciB0aGFuIHNldCB0aW1lIG91dFxyXG4gICAgfSk7XHJcbn1cclxuXHJcbi8qIEBwYXJhbSB7QXJyYXl9IG51bWJlcnMgQW4gYXJyYXkgb2YgbnVtYmVycy5cclxuICogQHJldHVybiB7TnVtYmVyfSBUaGUgY2FsY3VsYXRlZCBhdmVyYWdlIChvciBtZWFuKSB2YWx1ZSBmcm9tIHRoZSBzcGVjaWZpZWRcclxuICogICAgIG51bWJlcnMuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWVhbihudW1iZXJzOiBudW1iZXJbXSkge1xyXG4gICAgbGV0IHRvdGFsID0gMDtcclxuICAgIGZvciAoY29uc3QgbnVtYmVyIG9mIG51bWJlcnMpIHtcclxuICAgICAgICB0b3RhbCArPSBudW1iZXI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdG90YWwgLyBudW1iZXJzLmxlbmd0aDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUaW1lc3RhbXBUb0xvY2FsWm9uZSh0aW1lc3RhbXA6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBjb25zdCBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xyXG4gICAgY29uc3QgbG9jYWxPZmZzZXQgPSAtMSAqIHNlbGVjdGVkRGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDA7XHJcbiAgICBjb25zdCBzdGFtcCA9IHRpbWVzdGFtcCArIGxvY2FsT2Zmc2V0O1xyXG4gICAgcmV0dXJuIHN0YW1wO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHN0cmluZyBmb3IgcGVyaW9kIG9mIHRpbWUuIFBhcmFtZXRlcnMgYXJlIERhdGVUaW1lIG9iamVjdHMgb2YgbHV4b24gbGlicmFyeS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2xhdGVEYXRlUGVyaW9kKFxyXG4gICAgdHJhbnNsYXRlU2VydmljZTogYW55LFxyXG4gICAgZGF0ZVN0YXJ0UGVyaW9kOiBhbnksXHJcbiAgICBkYXRlRW5kUGVyaW9kOiBhbnksXHJcbik6IHN0cmluZyB7XHJcbiAgICBjb25zdCBsb2NhbGUgPSBnZXRMb2NhbGVMb25nKHRyYW5zbGF0ZVNlcnZpY2UpO1xyXG4gICAgcmV0dXJuIGAke2RhdGVTdGFydFBlcmlvZC50b0xvY2FsZVN0cmluZyh7XHJcbiAgICAgICAgbG9jYWxlLFxyXG4gICAgICAgIG1vbnRoOiBcImxvbmdcIixcclxuICAgICAgICBkYXk6IFwiMi1kaWdpdFwiLFxyXG4gICAgfSl9IC0gJHtkYXRlRW5kUGVyaW9kLnRvTG9jYWxlU3RyaW5nKHtcclxuICAgICAgICBsb2NhbGUsXHJcbiAgICAgICAgbW9udGg6IFwibG9uZ1wiLFxyXG4gICAgICAgIGRheTogXCIyLWRpZ2l0XCIsXHJcbiAgICB9KX0gYDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4qIFJldHVybiBsb2NhbCBpbiB0aGUgY2Fub25pY2FsIGZvcm06IFwiZW4tR0JcIiwgXCJmci1GUlwiXHJcbiovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVMb25nKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSk6IHN0cmluZyB7XHJcbiAgICBsZXQgbGFuZyA9IGdldEN1cnJlbnRMYW5nKHRyYW5zbGF0ZSk7XHJcblxyXG4gICAgaWYgKGxhbmcgPT09IFwiZW5cIikge1xyXG4gICAgICAgIHJldHVybiBcImVuLUdCXCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7bGFuZ30tJHtsYW5nLnRvVXBwZXJDYXNlKCl9YDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBsb2NhbCBpbiB0aGUgc2hvcnQgZm9ybTogXCJlblwiLCBcImZyXCJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVTaG9ydCh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGdldEN1cnJlbnRMYW5nKHRyYW5zbGF0ZSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGb3JtYXQgc3RyaW5nIHRvIGxvd2VyY2FzZSwgbm8gc3BhY2VzXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nVG9Mb3dlcmNhc2VOb1NwYWNlcyhpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHdvcmRzID0gaW5wdXQudG9Mb3dlckNhc2UoKS5zcGxpdCgvXFxzKy8pO1xyXG4gICAgcmV0dXJuIHdvcmRzLmpvaW4oXCJcIik7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUZXN0IGlmIHRoZSBvYmplY3QgPT09IHt9XHJcbiAqIEBwYXJhbSBvYmogb2JqZWN0IHtrZXk6dmFsdWV9XHJcbiAqIEByZXR1cm5zIGJvb2xlYW5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0VtcHR5T2JqZWN0KG9iamVjdCk6IGJvb2xlYW4ge1xyXG4gICAgZm9yIChjb25zdCB4IGluIG9iamVjdCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2h1ZmZsZUFycmF5KGFycmF5OiBhbnlbXSkge1xyXG4gICAgY29uc3QgbmV3QXJyYXkgPSBbLi4uYXJyYXldO1xyXG4gICAgZm9yIChsZXQgaW5kZXggPSBhcnJheS5sZW5ndGggLSAxOyBpbmRleCA+IDA7IGluZGV4LS0pIHtcclxuICAgICAgICBjb25zdCBpbmRleE5ldyA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChpbmRleCArIDEpKTtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cclxuICAgICAgICBbbmV3QXJyYXlbaW5kZXhdLCBuZXdBcnJheVtpbmRleE5ld11dID0gW1xyXG4gICAgICAgICAgICBuZXdBcnJheVtpbmRleE5ld10sXHJcbiAgICAgICAgICAgIG5ld0FycmF5W2luZGV4XSxcclxuICAgICAgICBdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ld0FycmF5O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbnVtYmVyVG9EYXRlU3RyaW5nKHRpbWVzdGFtcDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGpzRGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcCk7XHJcbiAgICByZXR1cm4ganNEYXRlLnRvTG9jYWxlU3RyaW5nKFwiZnItRlJcIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkdXJhdGlvblRvU3RyaW5nKFxyXG4gICAgZHVyYXRpb246IG51bWJlcixcclxuICAgIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGRheXMgPSBNYXRoLmZsb29yKGR1cmF0aW9uIC8gMzYwMCAvIDI0KTtcclxuICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcigoZHVyYXRpb24gLSBkYXlzICogMjQgKiAzNjAwKSAvIDM2MDApO1xyXG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoKGR1cmF0aW9uICUgMzYwMCkgLyA2MCk7XHJcbiAgICBjb25zdCBzZWNvbmRzID0gTWF0aC5mbG9vcihkdXJhdGlvbiAlIDYwKTtcclxuXHJcbiAgICBjb25zdCBkYXlzU3RyaW5nID0gdHJhbnNsYXRlLmluc3RhbnQoXCJkYXkocylcIik7XHJcbiAgICBjb25zdCBob3Vyc1N0cmluZyA9IHRyYW5zbGF0ZS5pbnN0YW50KFwiaG91cihzKVwiKTtcclxuICAgIGNvbnN0IG9uZUhvdXJTdHJpbmcgPSB0cmFuc2xhdGUuaW5zdGFudChcImhvdXJcIik7XHJcbiAgICBjb25zdCBtaW51dGVzU3RyaW5nID0gdHJhbnNsYXRlLmluc3RhbnQoXCJtaW51dGUocylcIik7XHJcbiAgICBjb25zdCBzZWNvbmRzU3RyaW5nID0gdHJhbnNsYXRlLmluc3RhbnQoXCJzZWNvbmQocylcIik7XHJcblxyXG4gICAgaWYgKGR1cmF0aW9uID4gMzYwMCAqIDI0ICogNykge1xyXG4gICAgICAgIHJldHVybiBgJHtkYXlzfSAke2RheXNTdHJpbmd9YDtcclxuICAgIH1cclxuICAgIGlmIChkdXJhdGlvbiA+IDM2MDAgKiAyNCkge1xyXG4gICAgICAgIHJldHVybiBgJHtkYXlzfSAke2RheXNTdHJpbmd9ICR7aG91cnN9ICR7aG91cnNTdHJpbmd9YDtcclxuICAgIH1cclxuICAgIGlmIChkdXJhdGlvbiA9PT0gMzYwMCkge1xyXG4gICAgICAgIHJldHVybiBgJHtob3Vyc30gJHtvbmVIb3VyU3RyaW5nfWA7XHJcbiAgICB9XHJcbiAgICBpZiAoZHVyYXRpb24gPiAzNjAwKSB7XHJcbiAgICAgICAgaWYgKG1pbnV0ZXMgPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke2hvdXJzfSAke2hvdXJzU3RyaW5nfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBgJHtob3Vyc30gJHtob3Vyc1N0cmluZ30gJHttaW51dGVzfSAke21pbnV0ZXNTdHJpbmd9YDtcclxuICAgIH1cclxuICAgIGlmIChkdXJhdGlvbiA+PSA2MCkge1xyXG4gICAgICAgIGlmIChzZWNvbmRzID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHttaW51dGVzfSAke21pbnV0ZXNTdHJpbmd9YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke21pbnV0ZXN9ICR7bWludXRlc1N0cmluZ30gJHtzZWNvbmRzfSAke3NlY29uZHNTdHJpbmd9YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHtzZWNvbmRzfSAke3NlY29uZHNTdHJpbmd9YDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHBvaW50VG9TdHJpbmcocG9pbnQ6IHsgeDogbnVtYmVyLCB5OiBudW1iZXIsIHo6IG51bWJlciB9KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHggPSBwb2ludC54LnRvRml4ZWQoMyk7XHJcbiAgICBjb25zdCB5ID0gcG9pbnQueS50b0ZpeGVkKDMpO1xyXG4gICAgY29uc3QgeiA9IHBvaW50LnoudG9GaXhlZCgzKTtcclxuXHJcbiAgICByZXR1cm4gYHsgeDogJHt4fSwgeTogJHt5fSwgejogJHt6fSB9YDtcclxufVxyXG5cclxuXHJcbiJdfQ==
@@ -45,4 +45,4 @@ export const canvasImageType = 'mp.canvasImage';
45
45
  export function makeCanvasImage() {
46
46
  return new CanvasImage();
47
47
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FudmFzSW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL21hdHRlcnBvcnQtZXh0ZW5zaW9ucy9uZXN0LXRoZXJtb3N0YXQvQ2FudmFzSW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixjQUFjLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQWVwRixNQUFNLE9BQU8sV0FBWSxTQUFRLGNBQWM7SUFDckMsS0FBSyxHQUE0QixJQUFJLENBQUM7SUFFckMsTUFBTSxHQUFXO1FBQ3hCLEdBQUcsRUFBRSxJQUFJO1FBQ1QsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1FBQzNCLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtRQUN6QixZQUFZLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDNUIsUUFBUSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0tBQzNCLENBQUE7SUFFUSxPQUFPLEdBQUc7UUFDakIsT0FBTyxFQUFFLElBQUk7S0FDSCxDQUFDO0lBRUosTUFBTTtRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVRLGVBQWU7UUFDdEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBbUMsRUFBRSxJQUFVO1FBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsT0FBTztRQUNULENBQUM7UUFFRCxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBRWxCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztZQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLFVBQVMsS0FBWTtnQkFDdkMsOEJBQThCO1lBQ2hDLENBQUMsQ0FBQztRQUNKLENBQUM7UUFFRCw4QkFBOEI7SUFDaEMsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDO0FBQ2hELE1BQU0sVUFBVSxlQUFlO0lBQzdCLE9BQU8sSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnRPdXRwdXQsIFNjZW5lQ29tcG9uZW50fSBmcm9tICcuLy4uL3NjZW5lLWNvbXBvbmVudC9TY2VuZUNvbXBvbmVudCc7XG5pbXBvcnQge0lQYWludGVyMmR9IGZyb20gXCIuL0NhbnZhc1JlbmRlcmVyXCI7XG5pbXBvcnQge1NpemV9IGZyb20gXCIuL1BsYW5lUmVuZGVyZXJcIjtcbnR5cGUgSW5wdXRzID0ge1xuICBzcmM6IHN0cmluZyB8IG51bGw7XG4gIHNyY1Bvc2l0aW9uOiB7IHg6IG51bWJlciwgeTogbnVtYmVyIH07XG4gIHNyY1NpemU6IFNpemU7XG4gIGRlc3RQb3NpdGlvbjogeyB4OiBudW1iZXIsIHk6IG51bWJlciB9O1xuICBkZXN0U2l6ZTogU2l6ZTtcbn07XG5cbnR5cGUgT3V0cHV0cyA9IHtcbiAgcGFpbnRlcjogSVBhaW50ZXIyZCB8IG51bGw7XG59ICYgQ29tcG9uZW50T3V0cHV0O1xuXG5leHBvcnQgY2xhc3MgQ2FudmFzSW1hZ2UgZXh0ZW5kcyBTY2VuZUNvbXBvbmVudCBpbXBsZW1lbnRzIElQYWludGVyMmQge1xuICBwcml2YXRlIGltYWdlOiBIVE1MSW1hZ2VFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgb3ZlcnJpZGUgaW5wdXRzOiBJbnB1dHMgPSB7XG4gICAgc3JjOiBudWxsLFxuICAgIHNyY1Bvc2l0aW9uOiB7IHg6IDAsIHk6IDAgfSxcbiAgICBzcmNTaXplOiB7IHc6IDY0LCBoOiA2NCB9LFxuICAgIGRlc3RQb3NpdGlvbjogeyB4OiAwLCB5OiAwIH0sXG4gICAgZGVzdFNpemU6IHsgdzogNjQsIGg6IDY0IH0sXG4gIH1cblxuICBvdmVycmlkZSBvdXRwdXRzID0ge1xuICAgIHBhaW50ZXI6IG51bGwsXG4gIH0gYXMgT3V0cHV0cztcblxuICBvdmVycmlkZSBvbkluaXQoKSB7XG4gICAgdGhpcy5vdXRwdXRzLnBhaW50ZXIgPSB0aGlzO1xuICAgIHRoaXMubWF5YmVMb2FkSW1hZ2UoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uSW5wdXRzVXBkYXRlZCgpIHtcbiAgICB0aGlzLm1heWJlTG9hZEltYWdlKCk7XG4gIH1cblxuICBwYWludChjb250ZXh0MmQ6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCwgc2l6ZTogU2l6ZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pbWFnZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnRleHQyZC5jbGVhclJlY3QoMCwgMCwgdGhpcy5pbnB1dHMuZGVzdFNpemUudywgdGhpcy5pbnB1dHMuZGVzdFNpemUuaCk7XG4gICAgaWYgKHRoaXMuaW1hZ2Uud2lkdGggPiAwKSB7XG4gICAgICBjb250ZXh0MmQuZHJhd0ltYWdlKHRoaXMuaW1hZ2UsXG4gICAgICAgIHRoaXMuaW5wdXRzLnNyY1Bvc2l0aW9uLngsIHRoaXMuaW5wdXRzLnNyY1Bvc2l0aW9uLnksXG4gICAgICAgIHRoaXMuaW5wdXRzLnNyY1NpemUudywgdGhpcy5pbnB1dHMuc3JjU2l6ZS5oLFxuICAgICAgICB0aGlzLmlucHV0cy5kZXN0UG9zaXRpb24ueCwgdGhpcy5pbnB1dHMuZGVzdFBvc2l0aW9uLnksXG4gICAgICAgIHRoaXMuaW5wdXRzLmRlc3RTaXplLncsIHRoaXMuaW5wdXRzLmRlc3RTaXplLmgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbWF5YmVMb2FkSW1hZ2UoKSB7XG4gICAgdGhpcy5pbWFnZSA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5pbnB1dHMuc3JjICE9PSBudWxsICYmIHRoaXMuaW5wdXRzLnNyYyAhPT0gJycpIHtcbiAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgdGhpcy5pbWFnZSA9IG5ldyBJbWFnZSgpO1xuICAgICAgdGhpcy5pbWFnZS5jcm9zc09yaWdpbiA9ICdhbm9ueW1vdXMnO1xuICAgICAgdGhpcy5pbWFnZS5zcmMgPSB0aGlzLmlucHV0cy5zcmM7XG4gICAgICB0aGlzLmltYWdlLm9ubG9hZCA9IGZ1bmN0aW9uKGV2ZW50OiBFdmVudCkge1xuICAgICAgICAvLyB0aGF0Lm5vdGlmeSgncGFpbnQucmVhZHknKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gdGhpcy5ub3RpZnkoJ3BhaW50LnJlYWR5Jyk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGNhbnZhc0ltYWdlVHlwZSA9ICdtcC5jYW52YXNJbWFnZSc7XG5leHBvcnQgZnVuY3Rpb24gbWFrZUNhbnZhc0ltYWdlKCkge1xuICByZXR1cm4gbmV3IENhbnZhc0ltYWdlKCk7XG59XG4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FudmFzSW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL21hdHRlcnBvcnQtZXh0ZW5zaW9ucy9uZXN0LXRoZXJtb3N0YXQvQ2FudmFzSW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixjQUFjLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQWVwRixNQUFNLE9BQU8sV0FBWSxTQUFRLGNBQWM7SUFDckMsS0FBSyxHQUE0QixJQUFJLENBQUM7SUFFckMsTUFBTSxHQUFXO1FBQ3hCLEdBQUcsRUFBRSxJQUFJO1FBQ1QsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1FBQzNCLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtRQUN6QixZQUFZLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDNUIsUUFBUSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0tBQzNCLENBQUE7SUFFUSxPQUFPLEdBQUc7UUFDakIsT0FBTyxFQUFFLElBQUk7S0FDSCxDQUFDO0lBRUosTUFBTTtRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVRLGVBQWU7UUFDdEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBbUMsRUFBRSxJQUFVO1FBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsT0FBTztRQUNULENBQUM7UUFFRCxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBRWxCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztZQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLFVBQVMsS0FBWTtnQkFDdkMsOEJBQThCO1lBQ2hDLENBQUMsQ0FBQztRQUNKLENBQUM7UUFFRCw4QkFBOEI7SUFDaEMsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDO0FBQ2hELE1BQU0sVUFBVSxlQUFlO0lBQzdCLE9BQU8sSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnRPdXRwdXQsIFNjZW5lQ29tcG9uZW50fSBmcm9tICcuLy4uL3NjZW5lLWNvbXBvbmVudC9TY2VuZUNvbXBvbmVudCc7XHJcbmltcG9ydCB7SVBhaW50ZXIyZH0gZnJvbSBcIi4vQ2FudmFzUmVuZGVyZXJcIjtcclxuaW1wb3J0IHtTaXplfSBmcm9tIFwiLi9QbGFuZVJlbmRlcmVyXCI7XHJcbnR5cGUgSW5wdXRzID0ge1xyXG4gIHNyYzogc3RyaW5nIHwgbnVsbDtcclxuICBzcmNQb3NpdGlvbjogeyB4OiBudW1iZXIsIHk6IG51bWJlciB9O1xyXG4gIHNyY1NpemU6IFNpemU7XHJcbiAgZGVzdFBvc2l0aW9uOiB7IHg6IG51bWJlciwgeTogbnVtYmVyIH07XHJcbiAgZGVzdFNpemU6IFNpemU7XHJcbn07XHJcblxyXG50eXBlIE91dHB1dHMgPSB7XHJcbiAgcGFpbnRlcjogSVBhaW50ZXIyZCB8IG51bGw7XHJcbn0gJiBDb21wb25lbnRPdXRwdXQ7XHJcblxyXG5leHBvcnQgY2xhc3MgQ2FudmFzSW1hZ2UgZXh0ZW5kcyBTY2VuZUNvbXBvbmVudCBpbXBsZW1lbnRzIElQYWludGVyMmQge1xyXG4gIHByaXZhdGUgaW1hZ2U6IEhUTUxJbWFnZUVsZW1lbnQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgb3ZlcnJpZGUgaW5wdXRzOiBJbnB1dHMgPSB7XHJcbiAgICBzcmM6IG51bGwsXHJcbiAgICBzcmNQb3NpdGlvbjogeyB4OiAwLCB5OiAwIH0sXHJcbiAgICBzcmNTaXplOiB7IHc6IDY0LCBoOiA2NCB9LFxyXG4gICAgZGVzdFBvc2l0aW9uOiB7IHg6IDAsIHk6IDAgfSxcclxuICAgIGRlc3RTaXplOiB7IHc6IDY0LCBoOiA2NCB9LFxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgb3V0cHV0cyA9IHtcclxuICAgIHBhaW50ZXI6IG51bGwsXHJcbiAgfSBhcyBPdXRwdXRzO1xyXG5cclxuICBvdmVycmlkZSBvbkluaXQoKSB7XHJcbiAgICB0aGlzLm91dHB1dHMucGFpbnRlciA9IHRoaXM7XHJcbiAgICB0aGlzLm1heWJlTG9hZEltYWdlKCk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBvbklucHV0c1VwZGF0ZWQoKSB7XHJcbiAgICB0aGlzLm1heWJlTG9hZEltYWdlKCk7XHJcbiAgfVxyXG5cclxuICBwYWludChjb250ZXh0MmQ6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCwgc2l6ZTogU2l6ZSk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmltYWdlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb250ZXh0MmQuY2xlYXJSZWN0KDAsIDAsIHRoaXMuaW5wdXRzLmRlc3RTaXplLncsIHRoaXMuaW5wdXRzLmRlc3RTaXplLmgpO1xyXG4gICAgaWYgKHRoaXMuaW1hZ2Uud2lkdGggPiAwKSB7XHJcbiAgICAgIGNvbnRleHQyZC5kcmF3SW1hZ2UodGhpcy5pbWFnZSxcclxuICAgICAgICB0aGlzLmlucHV0cy5zcmNQb3NpdGlvbi54LCB0aGlzLmlucHV0cy5zcmNQb3NpdGlvbi55LFxyXG4gICAgICAgIHRoaXMuaW5wdXRzLnNyY1NpemUudywgdGhpcy5pbnB1dHMuc3JjU2l6ZS5oLFxyXG4gICAgICAgIHRoaXMuaW5wdXRzLmRlc3RQb3NpdGlvbi54LCB0aGlzLmlucHV0cy5kZXN0UG9zaXRpb24ueSxcclxuICAgICAgICB0aGlzLmlucHV0cy5kZXN0U2l6ZS53LCB0aGlzLmlucHV0cy5kZXN0U2l6ZS5oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWF5YmVMb2FkSW1hZ2UoKSB7XHJcbiAgICB0aGlzLmltYWdlID0gbnVsbDtcclxuXHJcbiAgICBpZiAodGhpcy5pbnB1dHMuc3JjICE9PSBudWxsICYmIHRoaXMuaW5wdXRzLnNyYyAhPT0gJycpIHtcclxuICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XHJcbiAgICAgIHRoaXMuaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICAgICAgdGhpcy5pbWFnZS5jcm9zc09yaWdpbiA9ICdhbm9ueW1vdXMnO1xyXG4gICAgICB0aGlzLmltYWdlLnNyYyA9IHRoaXMuaW5wdXRzLnNyYztcclxuICAgICAgdGhpcy5pbWFnZS5vbmxvYWQgPSBmdW5jdGlvbihldmVudDogRXZlbnQpIHtcclxuICAgICAgICAvLyB0aGF0Lm5vdGlmeSgncGFpbnQucmVhZHknKTtcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLm5vdGlmeSgncGFpbnQucmVhZHknKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBjYW52YXNJbWFnZVR5cGUgPSAnbXAuY2FudmFzSW1hZ2UnO1xyXG5leHBvcnQgZnVuY3Rpb24gbWFrZUNhbnZhc0ltYWdlKCkge1xyXG4gIHJldHVybiBuZXcgQ2FudmFzSW1hZ2UoKTtcclxufVxyXG4iXX0=
@@ -57,4 +57,4 @@ export const canvasRendererType = 'mp.canvasRenderer';
57
57
  export function makeCanvasRenderer() {
58
58
  return new CanvasRenderer();
59
59
  }
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FudmFzUmVuZGVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL21hdHRlcnBvcnQtZXh0ZW5zaW9ucy9uZXN0LXRoZXJtb3N0YXQvQ2FudmFzUmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBbUIsTUFBTSxtQ0FBbUMsQ0FBQztBQUVwRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBcUJ0QyxNQUFNLE9BQU8sY0FBZSxTQUFRLGNBQWM7SUFDeEMsTUFBTSxDQUFvQjtJQUMxQixlQUFlLENBQTJCO0lBRXpDLE1BQU0sR0FBVztRQUN4QixPQUFPLEVBQUUsSUFBSTtRQUNiLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLHFCQUFxQjtLQUN4RCxDQUFBO0lBRVEsT0FBTyxHQUFHO1FBQ2pCLE9BQU8sRUFBRSxJQUFJO0tBQ0gsQ0FBQztJQUVKLE1BQU0sR0FBRztRQUNoQixPQUFPLEVBQUUsSUFBSTtLQUNKLENBQUM7SUFFSCxNQUFNO1FBRWIsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV0RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCw4QkFBOEIsQ0FBQyxFQUFFO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRVEsZUFBZSxDQUFDLFNBQWlCO1FBQ3hDLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuRCxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksU0FBUyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVRLE9BQU8sQ0FBQyxTQUFpQixFQUFFLFVBQW1CO1FBQ3JELElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVRLFNBQVM7UUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFTyxNQUFNLENBQUMsSUFBVTtRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN4RSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0NBRUY7QUFPRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN0RCxNQUFNLFVBQVUsa0JBQWtCO0lBQ2hDLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQztBQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NlbmVDb21wb25lbnQsIENvbXBvbmVudE91dHB1dCB9IGZyb20gJy4uL3NjZW5lLWNvbXBvbmVudC9TY2VuZUNvbXBvbmVudCc7XG5pbXBvcnQgdHlwZSB7IFRleHR1cmUgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBDYW52YXNUZXh0dXJlIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gJy4vUGxhbmVSZW5kZXJlcic7XG5pbXBvcnQgeyBDYW52YXNJbWFnZSB9IGZyb20gJy4vQ2FudmFzSW1hZ2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQYWludGVyMmQge1xuICBwYWludChjb250ZXh0MmQ6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCwgc2l6ZTogU2l6ZSk6IHZvaWQ7XG59XG5cbnR5cGUgSW5wdXRzID0ge1xuICBwYWludGVyOiBJUGFpbnRlcjJkIHwgbnVsbDtcbiAgdGV4dHVyZVJlczogU2l6ZTtcbn1cblxudHlwZSBPdXRwdXRzID0ge1xuICB0ZXh0dXJlOiBUZXh0dXJlIHwgbnVsbDtcbn0gJiBDb21wb25lbnRPdXRwdXQ7XG5cbnR5cGUgRXZlbnRzID0ge1xuICByZXBhaW50OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNsYXNzIENhbnZhc1JlbmRlcmVyIGV4dGVuZHMgU2NlbmVDb21wb25lbnQge1xuICBwcml2YXRlIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQ7XG4gIHByaXZhdGUgcmVuZGVyQ29udGV4dDJEOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XG5cbiAgb3ZlcnJpZGUgaW5wdXRzOiBJbnB1dHMgPSB7XG4gICAgcGFpbnRlcjogbnVsbCxcbiAgICB0ZXh0dXJlUmVzOiB7IHc6IDEwMjQsIGg6IDEwMjQgfSwgLy8gZGltIGZvciB0aGVybW9zdGF0XG4gIH1cblxuICBvdmVycmlkZSBvdXRwdXRzID0ge1xuICAgIHRleHR1cmU6IG51bGwsXG4gIH0gYXMgT3V0cHV0cztcblxuICBvdmVycmlkZSBldmVudHMgPSB7XG4gICAgcmVwYWludDogdHJ1ZSxcbiAgfSBhcyBFdmVudHM7XG5cbiAgb3ZlcnJpZGUgb25Jbml0KCkge1xuXG4gICAgLy8gc2V0IHVwIGNhbnZhcyAyZCBjb250ZXh0XG4gICAgdGhpcy5jYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICB0aGlzLnJlbmRlckNvbnRleHQyRCA9IHRoaXMuY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgdGhpcy5vdXRwdXRzLnRleHR1cmUgPSBuZXcgQ2FudmFzVGV4dHVyZSh0aGlzLmNhbnZhcyk7XG5cbiAgICB0aGlzLnJlc2l6ZSh0aGlzLmlucHV0cy50ZXh0dXJlUmVzKTtcbiAgICB0aGlzLnJlcGFpbnQoKTtcbiAgfVxuXG4gIHNldENhbnZhc05lc3RUaGVybW9zdGF0UGFpbnRlcihzYyl7XG4gICAgdGhpcy5pbnB1dHMucGFpbnRlciA9IHNjO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25JbnB1dHNVcGRhdGVkKG9sZElucHV0czogSW5wdXRzKSB7XG4gICAgaWYgKG9sZElucHV0cy50ZXh0dXJlUmVzLncgIT09IHRoaXMuaW5wdXRzLnRleHR1cmVSZXMudyB8fFxuICAgICAgICBvbGRJbnB1dHMudGV4dHVyZVJlcy5oICE9PSB0aGlzLmlucHV0cy50ZXh0dXJlUmVzLmgpIHtcbiAgICAgIHRoaXMucmVzaXplKHRoaXMuaW5wdXRzLnRleHR1cmVSZXMpO1xuICAgIH1cblxuICAgIGlmIChvbGRJbnB1dHMucGFpbnRlciAhPT0gdGhpcy5pbnB1dHMucGFpbnRlcikge1xuICAgICAgdGhpcy5yZXBhaW50KCk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgb25FdmVudChldmVudFR5cGU6IHN0cmluZywgX2V2ZW50RGF0YTogdW5rbm93bikge1xuICAgIGlmIChldmVudFR5cGUgPT09ICdyZXBhaW50Jykge1xuICAgICAgdGhpcy5yZXBhaW50KCk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgb25EZXN0cm95KCkge1xuICAgIHRoaXMub3V0cHV0cy50ZXh0dXJlLmRpc3Bvc2UoKTtcbiAgICB0aGlzLm91dHB1dHMudGV4dHVyZSA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHJlc2l6ZShzaXplOiBTaXplKSB7XG4gICAgdGhpcy5jYW52YXMud2lkdGggPSBzaXplLnc7XG4gICAgdGhpcy5jYW52YXMuaGVpZ2h0ID0gc2l6ZS5oO1xuICB9XG5cbiAgcHVibGljIHJlcGFpbnQoKSB7XG4gICAgaWYgKHRoaXMuaW5wdXRzLnBhaW50ZXIpIHtcbiAgICAgIHRoaXMuaW5wdXRzLnBhaW50ZXIucGFpbnQodGhpcy5yZW5kZXJDb250ZXh0MkQsIHRoaXMuaW5wdXRzLnRleHR1cmVSZXMpO1xuICAgICAgdGhpcy5vdXRwdXRzLnRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhbnZhc1JlbmRlcmVyIGV4dGVuZHMgU2NlbmVDb21wb25lbnR7XG4gIGlucHV0czogSW5wdXRzO1xuICBvdXRwdXRzOiBPdXRwdXRzO1xufVxuXG5leHBvcnQgY29uc3QgY2FudmFzUmVuZGVyZXJUeXBlID0gJ21wLmNhbnZhc1JlbmRlcmVyJztcbmV4cG9ydCBmdW5jdGlvbiBtYWtlQ2FudmFzUmVuZGVyZXIoKSB7XG4gIHJldHVybiBuZXcgQ2FudmFzUmVuZGVyZXIoKTtcbn1cbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FudmFzUmVuZGVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL21hdHRlcnBvcnQtZXh0ZW5zaW9ucy9uZXN0LXRoZXJtb3N0YXQvQ2FudmFzUmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBbUIsTUFBTSxtQ0FBbUMsQ0FBQztBQUVwRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBcUJ0QyxNQUFNLE9BQU8sY0FBZSxTQUFRLGNBQWM7SUFDeEMsTUFBTSxDQUFvQjtJQUMxQixlQUFlLENBQTJCO0lBRXpDLE1BQU0sR0FBVztRQUN4QixPQUFPLEVBQUUsSUFBSTtRQUNiLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLHFCQUFxQjtLQUN4RCxDQUFBO0lBRVEsT0FBTyxHQUFHO1FBQ2pCLE9BQU8sRUFBRSxJQUFJO0tBQ0gsQ0FBQztJQUVKLE1BQU0sR0FBRztRQUNoQixPQUFPLEVBQUUsSUFBSTtLQUNKLENBQUM7SUFFSCxNQUFNO1FBRWIsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV0RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCw4QkFBOEIsQ0FBQyxFQUFFO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRVEsZUFBZSxDQUFDLFNBQWlCO1FBQ3hDLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuRCxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksU0FBUyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVRLE9BQU8sQ0FBQyxTQUFpQixFQUFFLFVBQW1CO1FBQ3JELElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVRLFNBQVM7UUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFTyxNQUFNLENBQUMsSUFBVTtRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN4RSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0NBRUY7QUFPRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN0RCxNQUFNLFVBQVUsa0JBQWtCO0lBQ2hDLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQztBQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NlbmVDb21wb25lbnQsIENvbXBvbmVudE91dHB1dCB9IGZyb20gJy4uL3NjZW5lLWNvbXBvbmVudC9TY2VuZUNvbXBvbmVudCc7XHJcbmltcG9ydCB0eXBlIHsgVGV4dHVyZSB9IGZyb20gJ3RocmVlJztcclxuaW1wb3J0IHsgQ2FudmFzVGV4dHVyZSB9IGZyb20gJ3RocmVlJztcclxuaW1wb3J0IHsgU2l6ZSB9IGZyb20gJy4vUGxhbmVSZW5kZXJlcic7XHJcbmltcG9ydCB7IENhbnZhc0ltYWdlIH0gZnJvbSAnLi9DYW52YXNJbWFnZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElQYWludGVyMmQge1xyXG4gIHBhaW50KGNvbnRleHQyZDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELCBzaXplOiBTaXplKTogdm9pZDtcclxufVxyXG5cclxudHlwZSBJbnB1dHMgPSB7XHJcbiAgcGFpbnRlcjogSVBhaW50ZXIyZCB8IG51bGw7XHJcbiAgdGV4dHVyZVJlczogU2l6ZTtcclxufVxyXG5cclxudHlwZSBPdXRwdXRzID0ge1xyXG4gIHRleHR1cmU6IFRleHR1cmUgfCBudWxsO1xyXG59ICYgQ29tcG9uZW50T3V0cHV0O1xyXG5cclxudHlwZSBFdmVudHMgPSB7XHJcbiAgcmVwYWludDogYm9vbGVhbjtcclxufTtcclxuXHJcbmV4cG9ydCBjbGFzcyBDYW52YXNSZW5kZXJlciBleHRlbmRzIFNjZW5lQ29tcG9uZW50IHtcclxuICBwcml2YXRlIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQ7XHJcbiAgcHJpdmF0ZSByZW5kZXJDb250ZXh0MkQ6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDtcclxuXHJcbiAgb3ZlcnJpZGUgaW5wdXRzOiBJbnB1dHMgPSB7XHJcbiAgICBwYWludGVyOiBudWxsLFxyXG4gICAgdGV4dHVyZVJlczogeyB3OiAxMDI0LCBoOiAxMDI0IH0sIC8vIGRpbSBmb3IgdGhlcm1vc3RhdFxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgb3V0cHV0cyA9IHtcclxuICAgIHRleHR1cmU6IG51bGwsXHJcbiAgfSBhcyBPdXRwdXRzO1xyXG5cclxuICBvdmVycmlkZSBldmVudHMgPSB7XHJcbiAgICByZXBhaW50OiB0cnVlLFxyXG4gIH0gYXMgRXZlbnRzO1xyXG5cclxuICBvdmVycmlkZSBvbkluaXQoKSB7XHJcblxyXG4gICAgLy8gc2V0IHVwIGNhbnZhcyAyZCBjb250ZXh0XHJcbiAgICB0aGlzLmNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG4gICAgdGhpcy5yZW5kZXJDb250ZXh0MkQgPSB0aGlzLmNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgdGhpcy5vdXRwdXRzLnRleHR1cmUgPSBuZXcgQ2FudmFzVGV4dHVyZSh0aGlzLmNhbnZhcyk7XHJcblxyXG4gICAgdGhpcy5yZXNpemUodGhpcy5pbnB1dHMudGV4dHVyZVJlcyk7XHJcbiAgICB0aGlzLnJlcGFpbnQoKTtcclxuICB9XHJcblxyXG4gIHNldENhbnZhc05lc3RUaGVybW9zdGF0UGFpbnRlcihzYyl7XHJcbiAgICB0aGlzLmlucHV0cy5wYWludGVyID0gc2M7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBvbklucHV0c1VwZGF0ZWQob2xkSW5wdXRzOiBJbnB1dHMpIHtcclxuICAgIGlmIChvbGRJbnB1dHMudGV4dHVyZVJlcy53ICE9PSB0aGlzLmlucHV0cy50ZXh0dXJlUmVzLncgfHxcclxuICAgICAgICBvbGRJbnB1dHMudGV4dHVyZVJlcy5oICE9PSB0aGlzLmlucHV0cy50ZXh0dXJlUmVzLmgpIHtcclxuICAgICAgdGhpcy5yZXNpemUodGhpcy5pbnB1dHMudGV4dHVyZVJlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9sZElucHV0cy5wYWludGVyICE9PSB0aGlzLmlucHV0cy5wYWludGVyKSB7XHJcbiAgICAgIHRoaXMucmVwYWludCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgb25FdmVudChldmVudFR5cGU6IHN0cmluZywgX2V2ZW50RGF0YTogdW5rbm93bikge1xyXG4gICAgaWYgKGV2ZW50VHlwZSA9PT0gJ3JlcGFpbnQnKSB7XHJcbiAgICAgIHRoaXMucmVwYWludCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgb25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5vdXRwdXRzLnRleHR1cmUuZGlzcG9zZSgpO1xyXG4gICAgdGhpcy5vdXRwdXRzLnRleHR1cmUgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNpemUoc2l6ZTogU2l6ZSkge1xyXG4gICAgdGhpcy5jYW52YXMud2lkdGggPSBzaXplLnc7XHJcbiAgICB0aGlzLmNhbnZhcy5oZWlnaHQgPSBzaXplLmg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVwYWludCgpIHtcclxuICAgIGlmICh0aGlzLmlucHV0cy5wYWludGVyKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRzLnBhaW50ZXIucGFpbnQodGhpcy5yZW5kZXJDb250ZXh0MkQsIHRoaXMuaW5wdXRzLnRleHR1cmVSZXMpO1xyXG4gICAgICB0aGlzLm91dHB1dHMudGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ2FudmFzUmVuZGVyZXIgZXh0ZW5kcyBTY2VuZUNvbXBvbmVudHtcclxuICBpbnB1dHM6IElucHV0cztcclxuICBvdXRwdXRzOiBPdXRwdXRzO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgY2FudmFzUmVuZGVyZXJUeXBlID0gJ21wLmNhbnZhc1JlbmRlcmVyJztcclxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VDYW52YXNSZW5kZXJlcigpIHtcclxuICByZXR1cm4gbmV3IENhbnZhc1JlbmRlcmVyKCk7XHJcbn1cclxuIl19
@@ -153,4 +153,4 @@ export const nestThermostatType = 'mp.nestThermostat';
153
153
  export const makeNestThermostat = function () {
154
154
  return new NestThermostat();
155
155
  };
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmVzdFRoZXJtb3N0YXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL21hdHRlcnBvcnQtZXh0ZW5zaW9ucy9uZXN0LXRoZXJtb3N0YXQvTmVzdFRoZXJtb3N0YXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBb0MsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRyxPQUFPLEVBRUwsY0FBYyxFQUVkLFFBQVEsRUFDUixhQUFhLEVBSWIsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixpQkFBaUIsRUFFbEIsTUFBTSxPQUFPLENBQUM7QUFJZixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFDM0IsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDO0FBQy9CLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQztBQWMvQixNQUFNLE9BQU8sY0FBZSxTQUFRLGNBQWM7SUFDeEMsRUFBRSxHQUEwQixJQUFJLENBQUM7SUFDakMsYUFBYSxHQUF5QixJQUFJLENBQUM7SUFDM0MsU0FBUyxHQUFvQixJQUFJLENBQUM7SUFDbEMsS0FBSyxHQUEwQixJQUFJLENBQUM7SUFDcEMsV0FBVyxHQUF5QixJQUFJLENBQUM7SUFDekMsSUFBSSxHQUFnQixJQUFJLENBQUM7SUFDekIsV0FBVyxHQUFXLENBQUMsQ0FBQztJQUN4QixVQUFVLEdBQVcsQ0FBQyxDQUFDO0lBQ3ZCLFdBQVcsR0FBVyxDQUFDLENBQUM7SUFDeEIsZUFBZSxHQUFXLENBQUMsQ0FBQztJQUM1QixTQUFTLENBQWlCO0lBR3pCLE1BQU0sR0FBVztRQUN4QixZQUFZLEVBQUUsTUFBTTtRQUNwQixPQUFPLEVBQUUsSUFBSTtRQUNiLGNBQWMsRUFBRSxJQUFJO0tBQ3JCLENBQUE7SUFFUSxPQUFPLEdBQUc7UUFDakIsT0FBTyxFQUFFLElBQUk7UUFDYixPQUFPLEVBQUUsS0FBSztLQUNKLENBQUM7SUFFSixNQUFNLEdBQUc7UUFDaEIsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJO1FBQ2xCLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSTtLQUNyQixDQUFDO0lBRU8sTUFBTSxDQUFDLFNBQWUsRUFBRSxLQUFxQixFQUFFLFlBQWtCO1FBQ3hFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNJLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQztRQUNuQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUVqQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvRCwrQ0FBK0M7UUFDL0MsOENBQThDO1FBQzlDLDhEQUE4RDtRQUU5RCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV2RSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDZixNQUFNLGFBQWEsR0FBRyxJQUFJLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUMvRCxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDUCxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUc7U0FDZCxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRVEsZUFBZTtRQUN0QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzFDLE1BQU0sS0FBSyxHQUFtQixFQUFFLENBQUM7WUFFakMsWUFBWTtZQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFhLEVBQUUsRUFBRTtnQkFDakQsMERBQTBEO2dCQUMxRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssY0FBYyxFQUFFLENBQUM7b0JBQ2hDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBbUIsQ0FBQyxDQUFDO2dCQUNsQyxDQUFDO3FCQUFNLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztvQkFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFXLENBQUM7b0JBRXhCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBK0IsQ0FBQztvQkFDNUQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTt3QkFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDOzRCQUNqRixNQUFNLFdBQVcsR0FBRyxJQUFJLGlCQUFpQixDQUFDLEVBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQzs0QkFDdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDO3dCQUN4QyxDQUFDO29CQUNILENBQUMsQ0FBQyxDQUFBO2dCQUVKLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILDRCQUE0QjtZQUM1QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBa0IsRUFBRSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRVEsT0FBTyxDQUFDLFNBQWlCLEVBQUUsU0FBa0I7UUFDcEQsSUFBSSxTQUFTLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLEdBQVEsU0FBUyxDQUFDO1lBQzVCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDNUIsTUFBTSxhQUFhLEdBQW9CLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDL0UsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNyQixhQUFhLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztnQkFDOUIsYUFBYSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztnQkFDdkMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQW1DLEVBQUUsSUFBVTtRQUNuRCxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDZCxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUM7UUFFZCxTQUFTLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUM5QixTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdEIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6QyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFakIsU0FBUyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDaEMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3RCLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWpCLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0QixTQUFTLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztRQUNqQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekQsU0FBUyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDM0IsU0FBUyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDekIsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRW5CLFNBQVMsQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQzlCLFNBQVMsQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDO1FBQy9CLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFUSxNQUFNLENBQUMsS0FBYTtRQUMzQixJQUFJLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQztRQUUxQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO1lBRTlDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFaEQsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDL0MsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQy9DLENBQUM7WUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQXlCLEVBQUUsS0FBb0IsRUFBRSxFQUFrQjtRQUM5RSxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLHlDQUF5QztRQUN6QyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQztJQUNuQyxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQW1CO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLG1CQUFtQixDQUFDO0FBQ3RELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQztBQUM5QixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1NjZW5lQ29tcG9uZW50LCBDb21wb25lbnRPdXRwdXQsIENvbXBvbmVudENvbnRleHR9IGZyb20gJy4uL3NjZW5lLWNvbXBvbmVudC9TY2VuZUNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBPYmplY3QzRCxcbiAgQW5pbWF0aW9uTWl4ZXIsXG4gIEFuaW1hdGlvbkFjdGlvbixcbiAgTG9vcE9uY2UsXG4gIEFuaW1hdGlvbkNsaXAsXG4gIE1lc2gsXG4gIFRleHR1cmUsXG4gIE1lc2hMYW1iZXJ0TWF0ZXJpYWwsXG4gIFZlY3RvcktleWZyYW1lVHJhY2ssXG4gIEludGVycG9sYXRlU21vb3RoLFxuICBNZXNoQmFzaWNNYXRlcmlhbCxcbiAgTGluZVNlZ21lbnRzXG59IGZyb20gJ3RocmVlJztcbmltcG9ydCB7Q2FudmFzUmVuZGVyZXIsIElQYWludGVyMmR9IGZyb20gJy4vQ2FudmFzUmVuZGVyZXInO1xuaW1wb3J0IHtQbGFuZVJlbmRlcmVyLCBTaXplfSBmcm9tICcuL1BsYW5lUmVuZGVyZXInO1xuXG5jb25zdCBIb3ZlckV2ZW50ID0gJ2hvdmVyJztcbmNvbnN0IFVuaG92ZXJFdmVudCA9ICd1bmhvdmVyJztcbmNvbnN0IFJlcGFpbnRFdmVudCA9ICdyZXBhaW50JztcblxudHlwZSBJbnB1dHMgPSB7XG4gIGxvYWRpbmdTdGF0ZTogc3RyaW5nO1xuICB0ZXh0dXJlOiBUZXh0dXJlIHwgbnVsbDtcbiAgdXBkYXRlSW50ZXJ2YWw6IG51bWJlcjtcbn1cblxudHlwZSBPdXRwdXRzID0ge1xuICBwYWludGVyOiBJUGFpbnRlcjJkIHwgbnVsbDtcbiAgdmlzaWJsZTogYm9vbGVhbjtcbn0gJiBDb21wb25lbnRPdXRwdXQ7XG5cblxuZXhwb3J0IGNsYXNzIE5lc3RUaGVybW9zdGF0IGV4dGVuZHMgU2NlbmVDb21wb25lbnQgaW1wbGVtZW50cyBJUGFpbnRlcjJkIHtcbiAgcHJpdmF0ZSBjdjogQ2FudmFzUmVuZGVyZXIgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBwbGFuZVJlbmRlcmVyOiBQbGFuZVJlbmRlcmVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgcm9vdFNjZW5lOiBPYmplY3QzRCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG1peGVyOiBBbmltYXRpb25NaXhlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG9uRW50ZXJDbGlwOiBBbmltYXRpb25DbGlwIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbWVzaDogTWVzaCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGN1cnJlbnRUaW1lOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIG5leHRVcGRhdGU6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgdGVtcGVyYXR1cmU6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgdGVtcENoYW5nZVJhbmdlOiBudW1iZXIgPSA1O1xuICBwcml2YXRlIGNvbXBvbmVudDogU2NlbmVDb21wb25lbnQ7XG5cblxuICBvdmVycmlkZSBpbnB1dHM6IElucHV0cyA9IHtcbiAgICBsb2FkaW5nU3RhdGU6ICdJZGxlJyxcbiAgICB0ZXh0dXJlOiBudWxsLFxuICAgIHVwZGF0ZUludGVydmFsOiAxMDAwLFxuICB9XG5cbiAgb3ZlcnJpZGUgb3V0cHV0cyA9IHtcbiAgICBwYWludGVyOiBudWxsLFxuICAgIHZpc2libGU6IGZhbHNlLFxuICB9IGFzIE91dHB1dHM7XG5cbiAgb3ZlcnJpZGUgZXZlbnRzID0ge1xuICAgIFtIb3ZlckV2ZW50XTogdHJ1ZSxcbiAgICBbVW5ob3ZlckV2ZW50XTogdHJ1ZSxcbiAgfTtcblxuICBvdmVycmlkZSBvbkluaXQobW9kZWxOb2RlPzogYW55LCBwbGFuZT86IFBsYW5lUmVuZGVyZXIsIGlucHV0VGV4dHVyZT86IGFueSkge1xuICAgIGlmICghdGhpcy5jb250ZXh0KSB7XG4gICAgICB0aGlzLmNvbnRleHQgPSB7XG4gICAgICAgIHJvb3Q6IG1vZGVsTm9kZVxuICAgICAgfSBhcyBDb21wb25lbnRDb250ZXh0O1xuICAgIH1cbiAgICB0aGlzLmlucHV0cy50ZXh0dXJlID0gaW5wdXRUZXh0dXJlO1xuICAgIGNvbnN0IHJvb3QgPSB0aGlzLmNvbnRleHQucm9vdDtcbiAgICBjb25zdCBUSFJFRSA9IHRoaXMuY29udGV4dC50aHJlZTtcblxuICAgIHRoaXMucGxhbmVSZW5kZXJlciA9IHBsYW5lO1xuICAgIHRoaXMucGxhbmVSZW5kZXJlci5vdXRwdXRzLm9iamVjdFJvb3QudHJhbnNsYXRlWigwLjA1KTtcbiAgICB0aGlzLnBsYW5lUmVuZGVyZXIub3V0cHV0cy5vYmplY3RSb290LnRyYW5zbGF0ZVkoMC40KTtcbiAgICB0aGlzLnBsYW5lUmVuZGVyZXIub3V0cHV0cy5vYmplY3RSb290LnNjYWxlLnNldCgwLjUsIDAuNSwgMC41KTtcbiAgICAvLyBwbGFuZVJlbmRlcmVyLmlucHV0cy5sb2NhbFBvc2l0aW9uLnogPSAwLjA1O1xuICAgIC8vIHBsYW5lUmVuZGVyZXIuaW5wdXRzLmxvY2FsUG9zaXRpb24ueSA9IDAuNDtcbiAgICAvLyBwbGFuZVJlbmRlcmVyLmlucHV0cy5sb2NhbFNjYWxlID0ge3g6IDAuNSwgeTogMC41LCB6OiAwLjV9O1xuXG4gICAgdGhpcy5vdXRwdXRzLnBhaW50ZXIgPSB0aGlzO1xuXG4gICAgdGhpcy5taXhlciA9IG5ldyBBbmltYXRpb25NaXhlcih0aGlzLnBsYW5lUmVuZGVyZXIub3V0cHV0cy5vYmplY3RSb290KTtcblxuICAgIGNvbnN0IHRtID0gMC4yO1xuICAgIGNvbnN0IHBvc2l0aW9uVHJhY2sgPSBuZXcgVmVjdG9yS2V5ZnJhbWVUcmFjaygnLnNjYWxlJywgWzAsIHRtXSwgW1xuICAgICAgMCwgMCwgMCxcbiAgICAgIDAuNSwgMC41LCAwLjVcbiAgICBdLCBJbnRlcnBvbGF0ZVNtb290aCk7XG4gICAgdGhpcy5vbkVudGVyQ2xpcCA9IG5ldyBBbmltYXRpb25DbGlwKG51bGwsIHRtLCBbcG9zaXRpb25UcmFja10pO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25JbnB1dHNVcGRhdGVkKCkge1xuICAgIGlmICh0aGlzLmlucHV0cy5sb2FkaW5nU3RhdGUgPT09ICdMb2FkZWQnKSB7XG4gICAgICBjb25zdCBsaW5lczogTGluZVNlZ21lbnRzW10gPSBbXTtcblxuICAgICAgLy9AdHMtaWdub3JlXG4gICAgICB0aGlzLmNvbnRleHQucm9vdC5vYmozRC50cmF2ZXJzZSgob2JqOiBPYmplY3QzRCkgPT4ge1xuICAgICAgICAvLyB3ZSBkb250IHdhbnQgbGluZSBzZWdtZW50cywgdHJhY2sgdGhlbSBhbmQgcmVtb3ZlIHRoZW0uXG4gICAgICAgIGlmIChvYmoudHlwZSA9PT0gJ0xpbmVTZWdtZW50cycpIHtcbiAgICAgICAgICBsaW5lcy5wdXNoKG9iaiBhcyBMaW5lU2VnbWVudHMpO1xuICAgICAgICB9IGVsc2UgaWYgKG9iai50eXBlID09PSAnTWVzaCcpIHtcbiAgICAgICAgICB0aGlzLm1lc2ggPSBvYmogYXMgTWVzaDtcblxuICAgICAgICAgIGNvbnN0IG1hdGVyaWFscyA9IHRoaXMubWVzaC5tYXRlcmlhbCBhcyBNZXNoTGFtYmVydE1hdGVyaWFsO1xuICAgICAgICAgIG1hdGVyaWFscy5mb3JFYWNoKChtLCBpZHgpID0+IHtcbiAgICAgICAgICAgIGlmIChtICYmIG0ubWFwLnNvdXJjZS5kYXRhLm91dGVySFRNTC5pbmRleE9mKCdfNWI3NmRiZTM4ODg2MjMwMDEyNmMxZTE0JykgIT09IC0xKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld01hdGVyaWFsID0gbmV3IE1lc2hCYXNpY01hdGVyaWFsKHttYXA6IHRoaXMuaW5wdXRzLnRleHR1cmV9KTtcbiAgICAgICAgICAgICAgdGhpcy5tZXNoLm1hdGVyaWFsW2lkeF0gPSBuZXdNYXRlcmlhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuXG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyByZW1vdmUgdGhlIGxpbmUgc2VnbWVudHMuXG4gICAgICBsaW5lcy5mb3JFYWNoKChsaW5lOiBMaW5lU2VnbWVudHMpID0+IHtcbiAgICAgICAgbGluZS5wYXJlbnQucmVtb3ZlKGxpbmUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgb25FdmVudChldmVudFR5cGU6IHN0cmluZywgZXZlbnREYXRhOiB1bmtub3duKTogdm9pZCB7XG4gICAgaWYgKGV2ZW50VHlwZSA9PT0gSG92ZXJFdmVudCkge1xuICAgICAgY29uc3QgZGF0YTogYW55ID0gZXZlbnREYXRhO1xuICAgICAgaWYgKGRhdGEuaG92ZXIpIHtcbiAgICAgICAgdGhpcy5vdXRwdXRzLnZpc2libGUgPSB0cnVlO1xuICAgICAgICBjb25zdCBvbkVudGVyQWN0aW9uOiBBbmltYXRpb25BY3Rpb24gPSB0aGlzLm1peGVyLmNsaXBBY3Rpb24odGhpcy5vbkVudGVyQ2xpcCk7XG4gICAgICAgIG9uRW50ZXJBY3Rpb24uc3RvcCgpO1xuICAgICAgICBvbkVudGVyQWN0aW9uLmxvb3AgPSBMb29wT25jZTtcbiAgICAgICAgb25FbnRlckFjdGlvbi5jbGFtcFdoZW5GaW5pc2hlZCA9IHRydWU7XG4gICAgICAgIG9uRW50ZXJBY3Rpb24ucGxheSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vdXRwdXRzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwYWludChjb250ZXh0MmQ6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCwgc2l6ZTogU2l6ZSk6IHZvaWQge1xuICAgIGNvbnN0IHggPSA0OTA7XG4gICAgY29uc3QgeSA9IDQ5MDtcblxuICAgIGNvbnRleHQyZC5maWxsU3R5bGUgPSAnYmxhY2snO1xuICAgIGNvbnRleHQyZC5iZWdpblBhdGgoKTtcbiAgICBjb250ZXh0MmQuYXJjKHgsIHksIDQwMCwgMCwgTWF0aC5QSSAqIDIpO1xuICAgIGNvbnRleHQyZC5maWxsKCk7XG5cbiAgICBjb250ZXh0MmQuZmlsbFN0eWxlID0gJyNDRjUzMDAnO1xuICAgIGNvbnRleHQyZC5iZWdpblBhdGgoKTtcbiAgICBjb250ZXh0MmQuYXJjKHgsIHksIDMwMCwgMCwgTWF0aC5QSSAqIDIpO1xuICAgIGNvbnRleHQyZC5maWxsKCk7XG5cbiAgICBjb250ZXh0MmQuYmVnaW5QYXRoKCk7XG4gICAgY29udGV4dDJkLnN0cm9rZVN0eWxlID0gJ29yYW5nZSc7XG4gICAgY29udGV4dDJkLmFyYyh4LCB5LCAyNDAsIDAuNzUgKiBNYXRoLlBJLCAwLjI1ICogTWF0aC5QSSk7XG4gICAgY29udGV4dDJkLmxpbmVDYXAgPSAnYnV0dCc7XG4gICAgY29udGV4dDJkLmxpbmVXaWR0aCA9IDgwO1xuICAgIGNvbnRleHQyZC5zdHJva2UoKTtcblxuICAgIGNvbnRleHQyZC5maWxsU3R5bGUgPSAnd2hpdGUnO1xuICAgIGNvbnRleHQyZC5mb250ID0gJzIyMHB4IEFyaWFsJztcbiAgICBjb250ZXh0MmQuZmlsbFRleHQoYCR7dGhpcy50ZW1wZXJhdHVyZX1gLCB4IC0gMTE1LCB5ICsgNzUpO1xuICAgIHRoaXMub3V0cHV0cy52aXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uVGljayhkZWx0YTogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50VGltZSArPSBkZWx0YTtcblxuICAgIGlmICh0aGlzLm1peGVyKSB7XG4gICAgICB0aGlzLm1peGVyLnVwZGF0ZShkZWx0YSAvIDEwMDApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmN1cnJlbnRUaW1lID4gdGhpcy5uZXh0VXBkYXRlKSB7XG4gICAgICB0aGlzLm5leHRVcGRhdGUgKz0gdGhpcy5pbnB1dHMudXBkYXRlSW50ZXJ2YWw7XG5cbiAgICAgIHRoaXMudGVtcGVyYXR1cmUgKz0gKE1hdGgucmFuZG9tKCkgKiB0aGlzLnRlbXBDaGFuZ2VSYW5nZSk7XG4gICAgICB0aGlzLnRlbXBlcmF0dXJlID0gTWF0aC50cnVuYyh0aGlzLnRlbXBlcmF0dXJlKTtcblxuICAgICAgaWYgKHRoaXMudGVtcGVyYXR1cmUgPiA5OSkge1xuICAgICAgICB0aGlzLnRlbXBlcmF0dXJlID0gOTk7XG4gICAgICAgIHRoaXMudGVtcENoYW5nZVJhbmdlID0gLXRoaXMudGVtcENoYW5nZVJhbmdlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMudGVtcGVyYXR1cmUgPCAxMCkge1xuICAgICAgICB0aGlzLnRlbXBlcmF0dXJlID0gMTA7XG4gICAgICAgIHRoaXMudGVtcENoYW5nZVJhbmdlID0gLXRoaXMudGVtcENoYW5nZVJhbmdlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNvbXBvbmVudC5ub3RpZnkoUmVwYWludEV2ZW50KTtcbiAgICAgIHRoaXMuY3YucmVwYWludCgpXG4gICAgfVxuICB9XG5cbiAgc2V0Q29tcG9uZW50KGNvbXBvbmVudDogU2NlbmVDb21wb25lbnQsIHBsYW5lOiBQbGFuZVJlbmRlcmVyLCBjdjogQ2FudmFzUmVuZGVyZXIpIHtcbiAgICBjb21wb25lbnQub25UaWNrID0gdGhpcy5vblRpY2suYmluZCh0aGlzKTtcbiAgICAvLyBwbGFuZS5vblRpY2sgPSB0aGlzLm9uVGljay5iaW5kKHRoaXMpO1xuICAgIHRoaXMuY3YgPSBjdjtcbiAgICB0aGlzLmNvbXBvbmVudCA9IGNvbXBvbmVudDtcbiAgICB0aGlzLmNvbnRleHQgPSBjb21wb25lbnQuY29udGV4dDtcbiAgfVxuXG4gIHNldFJvb3RTY2VuZShyb290U2NlbmU6IE9iamVjdDNEKSB7XG4gICAgdGhpcy5yb290U2NlbmUgPSByb290U2NlbmU7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG5lc3RUaGVybW9zdGF0VHlwZSA9ICdtcC5uZXN0VGhlcm1vc3RhdCc7XG5leHBvcnQgY29uc3QgbWFrZU5lc3RUaGVybW9zdGF0ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IE5lc3RUaGVybW9zdGF0KCk7XG59XG4iXX0=
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmVzdFRoZXJtb3N0YXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL21hdHRlcnBvcnQtZXh0ZW5zaW9ucy9uZXN0LXRoZXJtb3N0YXQvTmVzdFRoZXJtb3N0YXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBb0MsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRyxPQUFPLEVBRUwsY0FBYyxFQUVkLFFBQVEsRUFDUixhQUFhLEVBSWIsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixpQkFBaUIsRUFFbEIsTUFBTSxPQUFPLENBQUM7QUFJZixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFDM0IsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDO0FBQy9CLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQztBQWMvQixNQUFNLE9BQU8sY0FBZSxTQUFRLGNBQWM7SUFDeEMsRUFBRSxHQUEwQixJQUFJLENBQUM7SUFDakMsYUFBYSxHQUF5QixJQUFJLENBQUM7SUFDM0MsU0FBUyxHQUFvQixJQUFJLENBQUM7SUFDbEMsS0FBSyxHQUEwQixJQUFJLENBQUM7SUFDcEMsV0FBVyxHQUF5QixJQUFJLENBQUM7SUFDekMsSUFBSSxHQUFnQixJQUFJLENBQUM7SUFDekIsV0FBVyxHQUFXLENBQUMsQ0FBQztJQUN4QixVQUFVLEdBQVcsQ0FBQyxDQUFDO0lBQ3ZCLFdBQVcsR0FBVyxDQUFDLENBQUM7SUFDeEIsZUFBZSxHQUFXLENBQUMsQ0FBQztJQUM1QixTQUFTLENBQWlCO0lBR3pCLE1BQU0sR0FBVztRQUN4QixZQUFZLEVBQUUsTUFBTTtRQUNwQixPQUFPLEVBQUUsSUFBSTtRQUNiLGNBQWMsRUFBRSxJQUFJO0tBQ3JCLENBQUE7SUFFUSxPQUFPLEdBQUc7UUFDakIsT0FBTyxFQUFFLElBQUk7UUFDYixPQUFPLEVBQUUsS0FBSztLQUNKLENBQUM7SUFFSixNQUFNLEdBQUc7UUFDaEIsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJO1FBQ2xCLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSTtLQUNyQixDQUFDO0lBRU8sTUFBTSxDQUFDLFNBQWUsRUFBRSxLQUFxQixFQUFFLFlBQWtCO1FBQ3hFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNJLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQztRQUNuQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUVqQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvRCwrQ0FBK0M7UUFDL0MsOENBQThDO1FBQzlDLDhEQUE4RDtRQUU5RCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV2RSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDZixNQUFNLGFBQWEsR0FBRyxJQUFJLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUMvRCxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDUCxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUc7U0FDZCxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRVEsZUFBZTtRQUN0QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzFDLE1BQU0sS0FBSyxHQUFtQixFQUFFLENBQUM7WUFFakMsWUFBWTtZQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFhLEVBQUUsRUFBRTtnQkFDakQsMERBQTBEO2dCQUMxRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssY0FBYyxFQUFFLENBQUM7b0JBQ2hDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBbUIsQ0FBQyxDQUFDO2dCQUNsQyxDQUFDO3FCQUFNLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztvQkFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFXLENBQUM7b0JBRXhCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBK0IsQ0FBQztvQkFDNUQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTt3QkFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDOzRCQUNqRixNQUFNLFdBQVcsR0FBRyxJQUFJLGlCQUFpQixDQUFDLEVBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQzs0QkFDdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDO3dCQUN4QyxDQUFDO29CQUNILENBQUMsQ0FBQyxDQUFBO2dCQUVKLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILDRCQUE0QjtZQUM1QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBa0IsRUFBRSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRVEsT0FBTyxDQUFDLFNBQWlCLEVBQUUsU0FBa0I7UUFDcEQsSUFBSSxTQUFTLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLEdBQVEsU0FBUyxDQUFDO1lBQzVCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDNUIsTUFBTSxhQUFhLEdBQW9CLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDL0UsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNyQixhQUFhLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztnQkFDOUIsYUFBYSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztnQkFDdkMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQW1DLEVBQUUsSUFBVTtRQUNuRCxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDZCxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUM7UUFFZCxTQUFTLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUM5QixTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdEIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6QyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFakIsU0FBUyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDaEMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3RCLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWpCLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0QixTQUFTLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztRQUNqQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekQsU0FBUyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDM0IsU0FBUyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDekIsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRW5CLFNBQVMsQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQzlCLFNBQVMsQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDO1FBQy9CLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFUSxNQUFNLENBQUMsS0FBYTtRQUMzQixJQUFJLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQztRQUUxQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO1lBRTlDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFaEQsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDL0MsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQy9DLENBQUM7WUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQXlCLEVBQUUsS0FBb0IsRUFBRSxFQUFrQjtRQUM5RSxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLHlDQUF5QztRQUN6QyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQztJQUNuQyxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQW1CO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLG1CQUFtQixDQUFDO0FBQ3RELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQztBQUM5QixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1NjZW5lQ29tcG9uZW50LCBDb21wb25lbnRPdXRwdXQsIENvbXBvbmVudENvbnRleHR9IGZyb20gJy4uL3NjZW5lLWNvbXBvbmVudC9TY2VuZUNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgT2JqZWN0M0QsXHJcbiAgQW5pbWF0aW9uTWl4ZXIsXHJcbiAgQW5pbWF0aW9uQWN0aW9uLFxyXG4gIExvb3BPbmNlLFxyXG4gIEFuaW1hdGlvbkNsaXAsXHJcbiAgTWVzaCxcclxuICBUZXh0dXJlLFxyXG4gIE1lc2hMYW1iZXJ0TWF0ZXJpYWwsXHJcbiAgVmVjdG9yS2V5ZnJhbWVUcmFjayxcclxuICBJbnRlcnBvbGF0ZVNtb290aCxcclxuICBNZXNoQmFzaWNNYXRlcmlhbCxcclxuICBMaW5lU2VnbWVudHNcclxufSBmcm9tICd0aHJlZSc7XHJcbmltcG9ydCB7Q2FudmFzUmVuZGVyZXIsIElQYWludGVyMmR9IGZyb20gJy4vQ2FudmFzUmVuZGVyZXInO1xyXG5pbXBvcnQge1BsYW5lUmVuZGVyZXIsIFNpemV9IGZyb20gJy4vUGxhbmVSZW5kZXJlcic7XHJcblxyXG5jb25zdCBIb3ZlckV2ZW50ID0gJ2hvdmVyJztcclxuY29uc3QgVW5ob3ZlckV2ZW50ID0gJ3VuaG92ZXInO1xyXG5jb25zdCBSZXBhaW50RXZlbnQgPSAncmVwYWludCc7XHJcblxyXG50eXBlIElucHV0cyA9IHtcclxuICBsb2FkaW5nU3RhdGU6IHN0cmluZztcclxuICB0ZXh0dXJlOiBUZXh0dXJlIHwgbnVsbDtcclxuICB1cGRhdGVJbnRlcnZhbDogbnVtYmVyO1xyXG59XHJcblxyXG50eXBlIE91dHB1dHMgPSB7XHJcbiAgcGFpbnRlcjogSVBhaW50ZXIyZCB8IG51bGw7XHJcbiAgdmlzaWJsZTogYm9vbGVhbjtcclxufSAmIENvbXBvbmVudE91dHB1dDtcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgTmVzdFRoZXJtb3N0YXQgZXh0ZW5kcyBTY2VuZUNvbXBvbmVudCBpbXBsZW1lbnRzIElQYWludGVyMmQge1xyXG4gIHByaXZhdGUgY3Y6IENhbnZhc1JlbmRlcmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBwbGFuZVJlbmRlcmVyOiBQbGFuZVJlbmRlcmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSByb290U2NlbmU6IE9iamVjdDNEIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBtaXhlcjogQW5pbWF0aW9uTWl4ZXIgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIG9uRW50ZXJDbGlwOiBBbmltYXRpb25DbGlwIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBtZXNoOiBNZXNoIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBjdXJyZW50VGltZTogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIG5leHRVcGRhdGU6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSB0ZW1wZXJhdHVyZTogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIHRlbXBDaGFuZ2VSYW5nZTogbnVtYmVyID0gNTtcclxuICBwcml2YXRlIGNvbXBvbmVudDogU2NlbmVDb21wb25lbnQ7XHJcblxyXG5cclxuICBvdmVycmlkZSBpbnB1dHM6IElucHV0cyA9IHtcclxuICAgIGxvYWRpbmdTdGF0ZTogJ0lkbGUnLFxyXG4gICAgdGV4dHVyZTogbnVsbCxcclxuICAgIHVwZGF0ZUludGVydmFsOiAxMDAwLFxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgb3V0cHV0cyA9IHtcclxuICAgIHBhaW50ZXI6IG51bGwsXHJcbiAgICB2aXNpYmxlOiBmYWxzZSxcclxuICB9IGFzIE91dHB1dHM7XHJcblxyXG4gIG92ZXJyaWRlIGV2ZW50cyA9IHtcclxuICAgIFtIb3ZlckV2ZW50XTogdHJ1ZSxcclxuICAgIFtVbmhvdmVyRXZlbnRdOiB0cnVlLFxyXG4gIH07XHJcblxyXG4gIG92ZXJyaWRlIG9uSW5pdChtb2RlbE5vZGU/OiBhbnksIHBsYW5lPzogUGxhbmVSZW5kZXJlciwgaW5wdXRUZXh0dXJlPzogYW55KSB7XHJcbiAgICBpZiAoIXRoaXMuY29udGV4dCkge1xyXG4gICAgICB0aGlzLmNvbnRleHQgPSB7XHJcbiAgICAgICAgcm9vdDogbW9kZWxOb2RlXHJcbiAgICAgIH0gYXMgQ29tcG9uZW50Q29udGV4dDtcclxuICAgIH1cclxuICAgIHRoaXMuaW5wdXRzLnRleHR1cmUgPSBpbnB1dFRleHR1cmU7XHJcbiAgICBjb25zdCByb290ID0gdGhpcy5jb250ZXh0LnJvb3Q7XHJcbiAgICBjb25zdCBUSFJFRSA9IHRoaXMuY29udGV4dC50aHJlZTtcclxuXHJcbiAgICB0aGlzLnBsYW5lUmVuZGVyZXIgPSBwbGFuZTtcclxuICAgIHRoaXMucGxhbmVSZW5kZXJlci5vdXRwdXRzLm9iamVjdFJvb3QudHJhbnNsYXRlWigwLjA1KTtcclxuICAgIHRoaXMucGxhbmVSZW5kZXJlci5vdXRwdXRzLm9iamVjdFJvb3QudHJhbnNsYXRlWSgwLjQpO1xyXG4gICAgdGhpcy5wbGFuZVJlbmRlcmVyLm91dHB1dHMub2JqZWN0Um9vdC5zY2FsZS5zZXQoMC41LCAwLjUsIDAuNSk7XHJcbiAgICAvLyBwbGFuZVJlbmRlcmVyLmlucHV0cy5sb2NhbFBvc2l0aW9uLnogPSAwLjA1O1xyXG4gICAgLy8gcGxhbmVSZW5kZXJlci5pbnB1dHMubG9jYWxQb3NpdGlvbi55ID0gMC40O1xyXG4gICAgLy8gcGxhbmVSZW5kZXJlci5pbnB1dHMubG9jYWxTY2FsZSA9IHt4OiAwLjUsIHk6IDAuNSwgejogMC41fTtcclxuXHJcbiAgICB0aGlzLm91dHB1dHMucGFpbnRlciA9IHRoaXM7XHJcblxyXG4gICAgdGhpcy5taXhlciA9IG5ldyBBbmltYXRpb25NaXhlcih0aGlzLnBsYW5lUmVuZGVyZXIub3V0cHV0cy5vYmplY3RSb290KTtcclxuXHJcbiAgICBjb25zdCB0bSA9IDAuMjtcclxuICAgIGNvbnN0IHBvc2l0aW9uVHJhY2sgPSBuZXcgVmVjdG9yS2V5ZnJhbWVUcmFjaygnLnNjYWxlJywgWzAsIHRtXSwgW1xyXG4gICAgICAwLCAwLCAwLFxyXG4gICAgICAwLjUsIDAuNSwgMC41XHJcbiAgICBdLCBJbnRlcnBvbGF0ZVNtb290aCk7XHJcbiAgICB0aGlzLm9uRW50ZXJDbGlwID0gbmV3IEFuaW1hdGlvbkNsaXAobnVsbCwgdG0sIFtwb3NpdGlvblRyYWNrXSk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBvbklucHV0c1VwZGF0ZWQoKSB7XHJcbiAgICBpZiAodGhpcy5pbnB1dHMubG9hZGluZ1N0YXRlID09PSAnTG9hZGVkJykge1xyXG4gICAgICBjb25zdCBsaW5lczogTGluZVNlZ21lbnRzW10gPSBbXTtcclxuXHJcbiAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICB0aGlzLmNvbnRleHQucm9vdC5vYmozRC50cmF2ZXJzZSgob2JqOiBPYmplY3QzRCkgPT4ge1xyXG4gICAgICAgIC8vIHdlIGRvbnQgd2FudCBsaW5lIHNlZ21lbnRzLCB0cmFjayB0aGVtIGFuZCByZW1vdmUgdGhlbS5cclxuICAgICAgICBpZiAob2JqLnR5cGUgPT09ICdMaW5lU2VnbWVudHMnKSB7XHJcbiAgICAgICAgICBsaW5lcy5wdXNoKG9iaiBhcyBMaW5lU2VnbWVudHMpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob2JqLnR5cGUgPT09ICdNZXNoJykge1xyXG4gICAgICAgICAgdGhpcy5tZXNoID0gb2JqIGFzIE1lc2g7XHJcblxyXG4gICAgICAgICAgY29uc3QgbWF0ZXJpYWxzID0gdGhpcy5tZXNoLm1hdGVyaWFsIGFzIE1lc2hMYW1iZXJ0TWF0ZXJpYWw7XHJcbiAgICAgICAgICBtYXRlcmlhbHMuZm9yRWFjaCgobSwgaWR4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChtICYmIG0ubWFwLnNvdXJjZS5kYXRhLm91dGVySFRNTC5pbmRleE9mKCdfNWI3NmRiZTM4ODg2MjMwMDEyNmMxZTE0JykgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgbmV3TWF0ZXJpYWwgPSBuZXcgTWVzaEJhc2ljTWF0ZXJpYWwoe21hcDogdGhpcy5pbnB1dHMudGV4dHVyZX0pO1xyXG4gICAgICAgICAgICAgIHRoaXMubWVzaC5tYXRlcmlhbFtpZHhdID0gbmV3TWF0ZXJpYWw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyByZW1vdmUgdGhlIGxpbmUgc2VnbWVudHMuXHJcbiAgICAgIGxpbmVzLmZvckVhY2goKGxpbmU6IExpbmVTZWdtZW50cykgPT4ge1xyXG4gICAgICAgIGxpbmUucGFyZW50LnJlbW92ZShsaW5lKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBvbkV2ZW50KGV2ZW50VHlwZTogc3RyaW5nLCBldmVudERhdGE6IHVua25vd24pOiB2b2lkIHtcclxuICAgIGlmIChldmVudFR5cGUgPT09IEhvdmVyRXZlbnQpIHtcclxuICAgICAgY29uc3QgZGF0YTogYW55ID0gZXZlbnREYXRhO1xyXG4gICAgICBpZiAoZGF0YS5ob3Zlcikge1xyXG4gICAgICAgIHRoaXMub3V0cHV0cy52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICBjb25zdCBvbkVudGVyQWN0aW9uOiBBbmltYXRpb25BY3Rpb24gPSB0aGlzLm1peGVyLmNsaXBBY3Rpb24odGhpcy5vbkVudGVyQ2xpcCk7XHJcbiAgICAgICAgb25FbnRlckFjdGlvbi5zdG9wKCk7XHJcbiAgICAgICAgb25FbnRlckFjdGlvbi5sb29wID0gTG9vcE9uY2U7XHJcbiAgICAgICAgb25FbnRlckFjdGlvbi5jbGFtcFdoZW5GaW5pc2hlZCA9IHRydWU7XHJcbiAgICAgICAgb25FbnRlckFjdGlvbi5wbGF5KCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vdXRwdXRzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcGFpbnQoY29udGV4dDJkOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsIHNpemU6IFNpemUpOiB2b2lkIHtcclxuICAgIGNvbnN0IHggPSA0OTA7XHJcbiAgICBjb25zdCB5ID0gNDkwO1xyXG5cclxuICAgIGNvbnRleHQyZC5maWxsU3R5bGUgPSAnYmxhY2snO1xyXG4gICAgY29udGV4dDJkLmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dDJkLmFyYyh4LCB5LCA0MDAsIDAsIE1hdGguUEkgKiAyKTtcclxuICAgIGNvbnRleHQyZC5maWxsKCk7XHJcblxyXG4gICAgY29udGV4dDJkLmZpbGxTdHlsZSA9ICcjQ0Y1MzAwJztcclxuICAgIGNvbnRleHQyZC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQyZC5hcmMoeCwgeSwgMzAwLCAwLCBNYXRoLlBJICogMik7XHJcbiAgICBjb250ZXh0MmQuZmlsbCgpO1xyXG5cclxuICAgIGNvbnRleHQyZC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQyZC5zdHJva2VTdHlsZSA9ICdvcmFuZ2UnO1xyXG4gICAgY29udGV4dDJkLmFyYyh4LCB5LCAyNDAsIDAuNzUgKiBNYXRoLlBJLCAwLjI1ICogTWF0aC5QSSk7XHJcbiAgICBjb250ZXh0MmQubGluZUNhcCA9ICdidXR0JztcclxuICAgIGNvbnRleHQyZC5saW5lV2lkdGggPSA4MDtcclxuICAgIGNvbnRleHQyZC5zdHJva2UoKTtcclxuXHJcbiAgICBjb250ZXh0MmQuZmlsbFN0eWxlID0gJ3doaXRlJztcclxuICAgIGNvbnRleHQyZC5mb250ID0gJzIyMHB4IEFyaWFsJztcclxuICAgIGNvbnRleHQyZC5maWxsVGV4dChgJHt0aGlzLnRlbXBlcmF0dXJlfWAsIHggLSAxMTUsIHkgKyA3NSk7XHJcbiAgICB0aGlzLm91dHB1dHMudmlzaWJsZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBvblRpY2soZGVsdGE6IG51bWJlcikge1xyXG4gICAgdGhpcy5jdXJyZW50VGltZSArPSBkZWx0YTtcclxuXHJcbiAgICBpZiAodGhpcy5taXhlcikge1xyXG4gICAgICB0aGlzLm1peGVyLnVwZGF0ZShkZWx0YSAvIDEwMDApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmN1cnJlbnRUaW1lID4gdGhpcy5uZXh0VXBkYXRlKSB7XHJcbiAgICAgIHRoaXMubmV4dFVwZGF0ZSArPSB0aGlzLmlucHV0cy51cGRhdGVJbnRlcnZhbDtcclxuXHJcbiAgICAgIHRoaXMudGVtcGVyYXR1cmUgKz0gKE1hdGgucmFuZG9tKCkgKiB0aGlzLnRlbXBDaGFuZ2VSYW5nZSk7XHJcbiAgICAgIHRoaXMudGVtcGVyYXR1cmUgPSBNYXRoLnRydW5jKHRoaXMudGVtcGVyYXR1cmUpO1xyXG5cclxuICAgICAgaWYgKHRoaXMudGVtcGVyYXR1cmUgPiA5OSkge1xyXG4gICAgICAgIHRoaXMudGVtcGVyYXR1cmUgPSA5OTtcclxuICAgICAgICB0aGlzLnRlbXBDaGFuZ2VSYW5nZSA9IC10aGlzLnRlbXBDaGFuZ2VSYW5nZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50ZW1wZXJhdHVyZSA8IDEwKSB7XHJcbiAgICAgICAgdGhpcy50ZW1wZXJhdHVyZSA9IDEwO1xyXG4gICAgICAgIHRoaXMudGVtcENoYW5nZVJhbmdlID0gLXRoaXMudGVtcENoYW5nZVJhbmdlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmNvbXBvbmVudC5ub3RpZnkoUmVwYWludEV2ZW50KTtcclxuICAgICAgdGhpcy5jdi5yZXBhaW50KClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENvbXBvbmVudChjb21wb25lbnQ6IFNjZW5lQ29tcG9uZW50LCBwbGFuZTogUGxhbmVSZW5kZXJlciwgY3Y6IENhbnZhc1JlbmRlcmVyKSB7XHJcbiAgICBjb21wb25lbnQub25UaWNrID0gdGhpcy5vblRpY2suYmluZCh0aGlzKTtcclxuICAgIC8vIHBsYW5lLm9uVGljayA9IHRoaXMub25UaWNrLmJpbmQodGhpcyk7XHJcbiAgICB0aGlzLmN2ID0gY3Y7XHJcbiAgICB0aGlzLmNvbXBvbmVudCA9IGNvbXBvbmVudDtcclxuICAgIHRoaXMuY29udGV4dCA9IGNvbXBvbmVudC5jb250ZXh0O1xyXG4gIH1cclxuXHJcbiAgc2V0Um9vdFNjZW5lKHJvb3RTY2VuZTogT2JqZWN0M0QpIHtcclxuICAgIHRoaXMucm9vdFNjZW5lID0gcm9vdFNjZW5lO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IG5lc3RUaGVybW9zdGF0VHlwZSA9ICdtcC5uZXN0VGhlcm1vc3RhdCc7XHJcbmV4cG9ydCBjb25zdCBtYWtlTmVzdFRoZXJtb3N0YXQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgcmV0dXJuIG5ldyBOZXN0VGhlcm1vc3RhdCgpO1xyXG59XHJcbiJdfQ==
@@ -81,4 +81,4 @@ export const planeRendererType = 'mp.planeRenderer';
81
81
  export function makePlaneRenderer() {
82
82
  return new PlaneRenderer();
83
83
  }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGxhbmVSZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvbWF0dGVycG9ydC1leHRlbnNpb25zL25lc3QtdGhlcm1vc3RhdC9QbGFuZVJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUUsd0JBQXdCLEdBQW9CLE1BQU0sbUNBQW1DLENBQUM7QUFDOUcsT0FBTyxFQUVMLElBQUksRUFDSixpQkFBaUIsRUFFakIsS0FBSyxFQUNMLG1CQUFtQixFQUNwQixNQUFNLE9BQU8sQ0FBQztBQWlCZixNQUFNLE9BQU8sYUFBYyxTQUFRLGNBQWM7SUFDdkMsU0FBUyxHQUFvQixJQUFJLENBQUM7SUFDbEMsSUFBSSxDQUFPO0lBQ1gsU0FBUyxDQUFXO0lBRW5CLE1BQU0sR0FBVztRQUN4QixPQUFPLEVBQUUsSUFBSTtRQUNiLE1BQU0sRUFBRSxDQUFDO1FBQ1QsV0FBVyxFQUFFLElBQUk7UUFDakIsT0FBTyxFQUFFLElBQUk7UUFDYixPQUFPLEVBQUUsQ0FBQztRQUNWLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLG1CQUFtQixFQUFFLENBQUM7UUFDdEIsa0JBQWtCLEVBQUUsQ0FBQztRQUNyQixVQUFVLEVBQUUsRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBQztRQUM5QixhQUFhLEVBQUUsRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBQztLQUNsQyxDQUFBO0lBRVEsTUFBTSxHQUFHO1FBQ2hCLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSTtLQUN2QyxDQUFDO0lBRU8sTUFBTSxDQUFDLFNBQWUsRUFBRSxZQUFrQjtRQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUM7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ0ksQ0FBQztRQUN4QixDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBRTdCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQ2xCLElBQUksbUJBQW1CLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUNqQyxJQUFJLGlCQUFpQixDQUFDO1lBQ3BCLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVc7WUFDcEMsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTztZQUN4QixPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzVCLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWE7WUFDeEMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUI7WUFDcEQsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0I7U0FDbkQsQ0FBQyxDQUFDLENBQUM7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2SCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTlCLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUMxQyxDQUFDO0lBRVEsT0FBTyxDQUFDLFNBQWlCLEVBQUUsU0FBa0I7UUFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVRLGVBQWUsQ0FBQyxTQUFpQjtRQUN4QyxJQUFJLFNBQVMsQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQThCLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ2xGLENBQUM7UUFFRCxJQUFJLFNBQVMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQTZCLENBQUM7WUFDekQsUUFBUSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUNuQyxRQUFRLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUM5QixDQUFDO1FBRUQsSUFBSSxTQUFTLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDMUMsQ0FBQztRQUVELElBQUksU0FBUyxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzFELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBNkIsQ0FBQztZQUN6RCxRQUFRLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1lBQ25ELFFBQVEsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDO1lBQy9ELFFBQVEsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDO1FBQy9ELENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2SCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoSCxDQUFDO0lBRVEsU0FBUztRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBRTlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBOEIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQW1CO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7Q0FFRjtBQU1ELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO0FBRXBELE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTyxJQUFJLGFBQWEsRUFBRSxDQUFDO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1NjZW5lQ29tcG9uZW50LCBDb21wb25lbnRJbnRlcmFjdGlvblR5cGUsIENvbXBvbmVudENvbnRleHQsfSBmcm9tICcuLi9zY2VuZS1jb21wb25lbnQvU2NlbmVDb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgVGV4dHVyZSxcbiAgTWVzaCxcbiAgTWVzaEJhc2ljTWF0ZXJpYWwsXG4gIE9iamVjdDNELFxuICBHcm91cCxcbiAgUGxhbmVCdWZmZXJHZW9tZXRyeVxufSBmcm9tICd0aHJlZSc7XG5cbmV4cG9ydCB0eXBlIFNpemUgPSB7IHc6IG51bWJlcjsgaDogbnVtYmVyOyB9O1xuXG50eXBlIElucHV0cyA9IHtcbiAgdGV4dHVyZTogVGV4dHVyZSB8IG51bGw7XG4gIGFzcGVjdDogbnVtYmVyO1xuICB0cmFuc3BhcmVudDogYm9vbGVhbjtcbiAgdmlzaWJsZTogYm9vbGVhbjtcbiAgb3BhY2l0eTogbnVtYmVyO1xuICBwb2x5Z29uT2Zmc2V0OiBib29sZWFuO1xuICBwb2x5Z29uT2Zmc2V0RmFjdG9yOiBudW1iZXI7XG4gIHBvbHlnb25PZmZzZXRVbml0czogbnVtYmVyO1xuICBsb2NhbFNjYWxlOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07XG4gIGxvY2FsUG9zaXRpb246IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlcjsgfTtcbn1cblxuZXhwb3J0IGNsYXNzIFBsYW5lUmVuZGVyZXIgZXh0ZW5kcyBTY2VuZUNvbXBvbmVudCBpbXBsZW1lbnRzIElQbGFuZVJlbmRlcmVyIHtcbiAgcHJpdmF0ZSByb290U2NlbmU6IE9iamVjdDNEIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbWVzaDogTWVzaDtcbiAgcHJpdmF0ZSBwaXZvdE5vZGU6IE9iamVjdDNEO1xuXG4gIG92ZXJyaWRlIGlucHV0czogSW5wdXRzID0ge1xuICAgIHRleHR1cmU6IG51bGwsXG4gICAgYXNwZWN0OiAxLFxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxuICAgIHZpc2libGU6IHRydWUsXG4gICAgb3BhY2l0eTogMSxcbiAgICBwb2x5Z29uT2Zmc2V0OiBmYWxzZSxcbiAgICBwb2x5Z29uT2Zmc2V0RmFjdG9yOiAwLFxuICAgIHBvbHlnb25PZmZzZXRVbml0czogMCxcbiAgICBsb2NhbFNjYWxlOiB7eDogMSwgeTogMSwgejogMX0sXG4gICAgbG9jYWxQb3NpdGlvbjoge3g6IDAsIHk6IDAsIHo6IDB9LFxuICB9XG5cbiAgb3ZlcnJpZGUgZXZlbnRzID0ge1xuICAgIFtDb21wb25lbnRJbnRlcmFjdGlvblR5cGUuQ0xJQ0tdOiB0cnVlLFxuICB9O1xuXG4gIG92ZXJyaWRlIG9uSW5pdChtb2RlbE5vZGU/OiBhbnksIGlucHV0VGV4dHVyZT86IGFueSkge1xuICAgIHRoaXMuaW5wdXRzLnRleHR1cmUgPSBpbnB1dFRleHR1cmU7XG4gICAgaWYgKCF0aGlzLmNvbnRleHQpIHtcbiAgICAgIHRoaXMuY29udGV4dCA9IHtcbiAgICAgICAgcm9vdDogbW9kZWxOb2RlXG4gICAgICB9IGFzIENvbXBvbmVudENvbnRleHQ7XG4gICAgfVxuXG4gICAgdGhpcy5waXZvdE5vZGUgPSBuZXcgR3JvdXAoKTtcblxuICAgIHRoaXMubWVzaCA9IG5ldyBNZXNoKFxuICAgICAgbmV3IFBsYW5lQnVmZmVyR2VvbWV0cnkoMS4wLCAxLjApLFxuICAgICAgbmV3IE1lc2hCYXNpY01hdGVyaWFsKHtcbiAgICAgICAgdHJhbnNwYXJlbnQ6IHRoaXMuaW5wdXRzLnRyYW5zcGFyZW50LFxuICAgICAgICBtYXA6IHRoaXMuaW5wdXRzLnRleHR1cmUsXG4gICAgICAgIG9wYWNpdHk6IHRoaXMuaW5wdXRzLm9wYWNpdHksXG4gICAgICAgIHBvbHlnb25PZmZzZXQ6IHRoaXMuaW5wdXRzLnBvbHlnb25PZmZzZXQsXG4gICAgICAgIHBvbHlnb25PZmZzZXRGYWN0b3I6IHRoaXMuaW5wdXRzLnBvbHlnb25PZmZzZXRGYWN0b3IsXG4gICAgICAgIHBvbHlnb25PZmZzZXRVbml0czogdGhpcy5pbnB1dHMucG9seWdvbk9mZnNldFVuaXRzLFxuICAgICAgfSkpO1xuICAgIHRoaXMubWVzaC5zY2FsZS5zZXQodGhpcy5pbnB1dHMubG9jYWxTY2FsZS54LCB0aGlzLmlucHV0cy5sb2NhbFNjYWxlLnkgLyB0aGlzLmlucHV0cy5hc3BlY3QsIHRoaXMuaW5wdXRzLmxvY2FsU2NhbGUueik7XG4gICAgdGhpcy5tZXNoLnBvc2l0aW9uLnNldCh0aGlzLmlucHV0cy5sb2NhbFBvc2l0aW9uLngsIHRoaXMuaW5wdXRzLmxvY2FsUG9zaXRpb24ueSwgdGhpcy5pbnB1dHMubG9jYWxQb3NpdGlvbi56KTtcbiAgICB0aGlzLm1lc2gudXBkYXRlTWF0cml4V29ybGQoKTtcbiAgICB0aGlzLnBpdm90Tm9kZS5hZGQodGhpcy5tZXNoKTtcblxuICAgIHRoaXMub3V0cHV0cy5vYmplY3RSb290ID0gdGhpcy5waXZvdE5vZGU7XG4gICAgdGhpcy5vdXRwdXRzLmNvbGxpZGVyID0gdGhpcy5waXZvdE5vZGU7XG4gICAgdGhpcy5tZXNoLnZpc2libGUgPSB0aGlzLmlucHV0cy52aXNpYmxlO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25FdmVudChldmVudFR5cGU6IHN0cmluZywgZXZlbnREYXRhOiB1bmtub3duKSB7XG4gICAgdGhpcy5ub3RpZnkoZXZlbnRUeXBlLCBldmVudERhdGEpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25JbnB1dHNVcGRhdGVkKG9sZElucHV0czogSW5wdXRzKSB7XG4gICAgaWYgKG9sZElucHV0cy50cmFuc3BhcmVudCAhPT0gdGhpcy5pbnB1dHMudHJhbnNwYXJlbnQpIHtcbiAgICAgICh0aGlzLm1lc2gubWF0ZXJpYWwgYXMgTWVzaEJhc2ljTWF0ZXJpYWwpLnRyYW5zcGFyZW50ID0gdGhpcy5pbnB1dHMudHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgaWYgKG9sZElucHV0cy50ZXh0dXJlICE9PSB0aGlzLmlucHV0cy50ZXh0dXJlKSB7XG4gICAgICBjb25zdCBtYXRlcmlhbCA9IHRoaXMubWVzaC5tYXRlcmlhbCBhcyBNZXNoQmFzaWNNYXRlcmlhbDtcbiAgICAgIG1hdGVyaWFsLm1hcCA9IHRoaXMuaW5wdXRzLnRleHR1cmU7XG4gICAgICBtYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG9sZElucHV0cy52aXNpYmxlICE9PSB0aGlzLmlucHV0cy52aXNpYmxlKSB7XG4gICAgICB0aGlzLm1lc2gudmlzaWJsZSA9IHRoaXMuaW5wdXRzLnZpc2libGU7XG4gICAgfVxuXG4gICAgaWYgKG9sZElucHV0cy5wb2x5Z29uT2Zmc2V0ICE9PSB0aGlzLmlucHV0cy5wb2x5Z29uT2Zmc2V0KSB7XG4gICAgICBjb25zdCBtYXRlcmlhbCA9IHRoaXMubWVzaC5tYXRlcmlhbCBhcyBNZXNoQmFzaWNNYXRlcmlhbDtcbiAgICAgIG1hdGVyaWFsLnBvbHlnb25PZmZzZXQgPSB0aGlzLmlucHV0cy5wb2x5Z29uT2Zmc2V0O1xuICAgICAgbWF0ZXJpYWwucG9seWdvbk9mZnNldEZhY3RvciA9IHRoaXMuaW5wdXRzLnBvbHlnb25PZmZzZXRGYWN0b3I7XG4gICAgICBtYXRlcmlhbC5wb2x5Z29uT2Zmc2V0VW5pdHMgPSB0aGlzLmlucHV0cy5wb2x5Z29uT2Zmc2V0VW5pdHM7XG4gICAgfVxuXG4gICAgdGhpcy5tZXNoLnNjYWxlLnNldCh0aGlzLmlucHV0cy5sb2NhbFNjYWxlLngsIHRoaXMuaW5wdXRzLmxvY2FsU2NhbGUueSAvIHRoaXMuaW5wdXRzLmFzcGVjdCwgdGhpcy5pbnB1dHMubG9jYWxTY2FsZS56KTtcbiAgICB0aGlzLm1lc2gucG9zaXRpb24uc2V0KHRoaXMuaW5wdXRzLmxvY2FsUG9zaXRpb24ueCwgdGhpcy5pbnB1dHMubG9jYWxQb3NpdGlvbi55LCB0aGlzLmlucHV0cy5sb2NhbFBvc2l0aW9uLnopO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25EZXN0cm95KCkge1xuICAgIHRoaXMub3V0cHV0cy5jb2xsaWRlciA9IG51bGw7XG4gICAgdGhpcy5vdXRwdXRzLm9iamVjdFJvb3QgPSBudWxsO1xuXG4gICAgKHRoaXMubWVzaC5tYXRlcmlhbCBhcyBNZXNoQmFzaWNNYXRlcmlhbCkuZGlzcG9zZSgpO1xuICAgIHRoaXMubWVzaC5nZW9tZXRyeS5kaXNwb3NlKCk7XG4gIH1cblxuICBzZXRSb290U2NlbmUocm9vdFNjZW5lOiBPYmplY3QzRCkge1xuICAgIHRoaXMucm9vdFNjZW5lID0gcm9vdFNjZW5lO1xuICB9XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGxhbmVSZW5kZXJlciBleHRlbmRzIFNjZW5lQ29tcG9uZW50IHtcbiAgaW5wdXRzOiBJbnB1dHM7XG59XG5cbmV4cG9ydCBjb25zdCBwbGFuZVJlbmRlcmVyVHlwZSA9ICdtcC5wbGFuZVJlbmRlcmVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VQbGFuZVJlbmRlcmVyKCkge1xuICByZXR1cm4gbmV3IFBsYW5lUmVuZGVyZXIoKTtcbn1cbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGxhbmVSZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvbWF0dGVycG9ydC1leHRlbnNpb25zL25lc3QtdGhlcm1vc3RhdC9QbGFuZVJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUUsd0JBQXdCLEdBQW9CLE1BQU0sbUNBQW1DLENBQUM7QUFDOUcsT0FBTyxFQUVMLElBQUksRUFDSixpQkFBaUIsRUFFakIsS0FBSyxFQUNMLG1CQUFtQixFQUNwQixNQUFNLE9BQU8sQ0FBQztBQWlCZixNQUFNLE9BQU8sYUFBYyxTQUFRLGNBQWM7SUFDdkMsU0FBUyxHQUFvQixJQUFJLENBQUM7SUFDbEMsSUFBSSxDQUFPO0lBQ1gsU0FBUyxDQUFXO0lBRW5CLE1BQU0sR0FBVztRQUN4QixPQUFPLEVBQUUsSUFBSTtRQUNiLE1BQU0sRUFBRSxDQUFDO1FBQ1QsV0FBVyxFQUFFLElBQUk7UUFDakIsT0FBTyxFQUFFLElBQUk7UUFDYixPQUFPLEVBQUUsQ0FBQztRQUNWLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLG1CQUFtQixFQUFFLENBQUM7UUFDdEIsa0JBQWtCLEVBQUUsQ0FBQztRQUNyQixVQUFVLEVBQUUsRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBQztRQUM5QixhQUFhLEVBQUUsRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBQztLQUNsQyxDQUFBO0lBRVEsTUFBTSxHQUFHO1FBQ2hCLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSTtLQUN2QyxDQUFDO0lBRU8sTUFBTSxDQUFDLFNBQWUsRUFBRSxZQUFrQjtRQUNqRCxJQUFJLENBQUMsTUFB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QUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQW1CO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7Q0FFRjtBQU1ELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO0FBRXBELE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTyxJQUFJLGFBQWEsRUFBRSxDQUFDO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1NjZW5lQ29tcG9uZW50LCBDb21wb25lbnRJbnRlcmFjdGlvblR5cGUsIENvbXBvbmVudENvbnRleHQsfSBmcm9tICcuLi9zY2VuZS1jb21wb25lbnQvU2NlbmVDb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIFRleHR1cmUsXHJcbiAgTWVzaCxcclxuICBNZXNoQmFzaWNNYXRlcmlhbCxcclxuICBPYmplY3QzRCxcclxuICBHcm91cCxcclxuICBQbGFuZUJ1ZmZlckdlb21ldHJ5XHJcbn0gZnJvbSAndGhyZWUnO1xyXG5cclxuZXhwb3J0IHR5cGUgU2l6ZSA9IHsgdzogbnVtYmVyOyBoOiBudW1iZXI7IH07XHJcblxyXG50eXBlIElucHV0cyA9IHtcclxuICB0ZXh0dXJlOiBUZXh0dXJlIHwgbnVsbDtcclxuICBhc3BlY3Q6IG51bWJlcjtcclxuICB0cmFuc3BhcmVudDogYm9vbGVhbjtcclxuICB2aXNpYmxlOiBib29sZWFuO1xyXG4gIG9wYWNpdHk6IG51bWJlcjtcclxuICBwb2x5Z29uT2Zmc2V0OiBib29sZWFuO1xyXG4gIHBvbHlnb25PZmZzZXRGYWN0b3I6IG51bWJlcjtcclxuICBwb2x5Z29uT2Zmc2V0VW5pdHM6IG51bWJlcjtcclxuICBsb2NhbFNjYWxlOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07XHJcbiAgbG9jYWxQb3NpdGlvbjogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyOyB9O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGxhbmVSZW5kZXJlciBleHRlbmRzIFNjZW5lQ29tcG9uZW50IGltcGxlbWVudHMgSVBsYW5lUmVuZGVyZXIge1xyXG4gIHByaXZhdGUgcm9vdFNjZW5lOiBPYmplY3QzRCB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgbWVzaDogTWVzaDtcclxuICBwcml2YXRlIHBpdm90Tm9kZTogT2JqZWN0M0Q7XHJcblxyXG4gIG92ZXJyaWRlIGlucHV0czogSW5wdXRzID0ge1xyXG4gICAgdGV4dHVyZTogbnVsbCxcclxuICAgIGFzcGVjdDogMSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgIG9wYWNpdHk6IDEsXHJcbiAgICBwb2x5Z29uT2Zmc2V0OiBmYWxzZSxcclxuICAgIHBvbHlnb25PZmZzZXRGYWN0b3I6IDAsXHJcbiAgICBwb2x5Z29uT2Zmc2V0VW5pdHM6IDAsXHJcbiAgICBsb2NhbFNjYWxlOiB7eDogMSwgeTogMSwgejogMX0sXHJcbiAgICBsb2NhbFBvc2l0aW9uOiB7eDogMCwgeTogMCwgejogMH0sXHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBldmVudHMgPSB7XHJcbiAgICBbQ29tcG9uZW50SW50ZXJhY3Rpb25UeXBlLkNMSUNLXTogdHJ1ZSxcclxuICB9O1xyXG5cclxuICBvdmVycmlkZSBvbkluaXQobW9kZWxOb2RlPzogYW55LCBpbnB1dFRleHR1cmU/OiBhbnkpIHtcclxuICAgIHRoaXMuaW5wdXRzLnRleHR1cmUgPSBpbnB1dFRleHR1cmU7XHJcbiAgICBpZiAoIXRoaXMuY29udGV4dCkge1xyXG4gICAgICB0aGlzLmNvbnRleHQgPSB7XHJcbiAgICAgICAgcm9vdDogbW9kZWxOb2RlXHJcbiAgICAgIH0gYXMgQ29tcG9uZW50Q29udGV4dDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnBpdm90Tm9kZSA9IG5ldyBHcm91cCgpO1xyXG5cclxuICAgIHRoaXMubWVzaCA9IG5ldyBNZXNoKFxyXG4gICAgICBuZXcgUGxhbmVCdWZmZXJHZW9tZXRyeSgxLjAsIDEuMCksXHJcbiAgICAgIG5ldyBNZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAgICAgdHJhbnNwYXJlbnQ6IHRoaXMuaW5wdXRzLnRyYW5zcGFyZW50LFxyXG4gICAgICAgIG1hcDogdGhpcy5pbnB1dHMudGV4dHVyZSxcclxuICAgICAgICBvcGFjaXR5OiB0aGlzLmlucHV0cy5vcGFjaXR5LFxyXG4gICAgICAgIHBvbHlnb25PZmZzZXQ6IHRoaXMuaW5wdXRzLnBvbHlnb25PZmZzZXQsXHJcbiAgICAgICAgcG9seWdvbk9mZnNldEZhY3RvcjogdGhpcy5pbnB1dHMucG9seWdvbk9mZnNldEZhY3RvcixcclxuICAgICAgICBwb2x5Z29uT2Zmc2V0VW5pdHM6IHRoaXMuaW5wdXRzLnBvbHlnb25PZmZzZXRVbml0cyxcclxuICAgICAgfSkpO1xyXG4gICAgdGhpcy5tZXNoLnNjYWxlLnNldCh0aGlzLmlucHV0cy5sb2NhbFNjYWxlLngsIHRoaXMuaW5wdXRzLmxvY2FsU2NhbGUueSAvIHRoaXMuaW5wdXRzLmFzcGVjdCwgdGhpcy5pbnB1dHMubG9jYWxTY2FsZS56KTtcclxuICAgIHRoaXMubWVzaC5wb3NpdGlvbi5zZXQodGhpcy5pbnB1dHMubG9jYWxQb3NpdGlvbi54LCB0aGlzLmlucHV0cy5sb2NhbFBvc2l0aW9uLnksIHRoaXMuaW5wdXRzLmxvY2FsUG9zaXRpb24ueik7XHJcbiAgICB0aGlzLm1lc2gudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIHRoaXMucGl2b3ROb2RlLmFkZCh0aGlzLm1lc2gpO1xyXG5cclxuICAgIHRoaXMub3V0cHV0cy5vYmplY3RSb290ID0gdGhpcy5waXZvdE5vZGU7XHJcbiAgICB0aGlzLm91dHB1dHMuY29sbGlkZXIgPSB0aGlzLnBpdm90Tm9kZTtcclxuICAgIHRoaXMubWVzaC52aXNpYmxlID0gdGhpcy5pbnB1dHMudmlzaWJsZTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG9uRXZlbnQoZXZlbnRUeXBlOiBzdHJpbmcsIGV2ZW50RGF0YTogdW5rbm93bikge1xyXG4gICAgdGhpcy5ub3RpZnkoZXZlbnRUeXBlLCBldmVudERhdGEpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgb25JbnB1dHNVcGRhdGVkKG9sZElucHV0czogSW5wdXRzKSB7XHJcbiAgICBpZiAob2xkSW5wdXRzLnRyYW5zcGFyZW50ICE9PSB0aGlzLmlucHV0cy50cmFuc3BhcmVudCkge1xyXG4gICAgICAodGhpcy5tZXNoLm1hdGVyaWFsIGFzIE1lc2hCYXNpY01hdGVyaWFsKS50cmFuc3BhcmVudCA9IHRoaXMuaW5wdXRzLnRyYW5zcGFyZW50O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvbGRJbnB1dHMudGV4dHVyZSAhPT0gdGhpcy5pbnB1dHMudGV4dHVyZSkge1xyXG4gICAgICBjb25zdCBtYXRlcmlhbCA9IHRoaXMubWVzaC5tYXRlcmlhbCBhcyBNZXNoQmFzaWNNYXRlcmlhbDtcclxuICAgICAgbWF0ZXJpYWwubWFwID0gdGhpcy5pbnB1dHMudGV4dHVyZTtcclxuICAgICAgbWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvbGRJbnB1dHMudmlzaWJsZSAhPT0gdGhpcy5pbnB1dHMudmlzaWJsZSkge1xyXG4gICAgICB0aGlzLm1lc2gudmlzaWJsZSA9IHRoaXMuaW5wdXRzLnZpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9sZElucHV0cy5wb2x5Z29uT2Zmc2V0ICE9PSB0aGlzLmlucHV0cy5wb2x5Z29uT2Zmc2V0KSB7XHJcbiAgICAgIGNvbnN0IG1hdGVyaWFsID0gdGhpcy5tZXNoLm1hdGVyaWFsIGFzIE1lc2hCYXNpY01hdGVyaWFsO1xyXG4gICAgICBtYXRlcmlhbC5wb2x5Z29uT2Zmc2V0ID0gdGhpcy5pbnB1dHMucG9seWdvbk9mZnNldDtcclxuICAgICAgbWF0ZXJpYWwucG9seWdvbk9mZnNldEZhY3RvciA9IHRoaXMuaW5wdXRzLnBvbHlnb25PZmZzZXRGYWN0b3I7XHJcbiAgICAgIG1hdGVyaWFsLnBvbHlnb25PZmZzZXRVbml0cyA9IHRoaXMuaW5wdXRzLnBvbHlnb25PZmZzZXRVbml0cztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm1lc2guc2NhbGUuc2V0KHRoaXMuaW5wdXRzLmxvY2FsU2NhbGUueCwgdGhpcy5pbnB1dHMubG9jYWxTY2FsZS55IC8gdGhpcy5pbnB1dHMuYXNwZWN0LCB0aGlzLmlucHV0cy5sb2NhbFNjYWxlLnopO1xyXG4gICAgdGhpcy5tZXNoLnBvc2l0aW9uLnNldCh0aGlzLmlucHV0cy5sb2NhbFBvc2l0aW9uLngsIHRoaXMuaW5wdXRzLmxvY2FsUG9zaXRpb24ueSwgdGhpcy5pbnB1dHMubG9jYWxQb3NpdGlvbi56KTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG9uRGVzdHJveSgpIHtcclxuICAgIHRoaXMub3V0cHV0cy5jb2xsaWRlciA9IG51bGw7XHJcbiAgICB0aGlzLm91dHB1dHMub2JqZWN0Um9vdCA9IG51bGw7XHJcblxyXG4gICAgKHRoaXMubWVzaC5tYXRlcmlhbCBhcyBNZXNoQmFzaWNNYXRlcmlhbCkuZGlzcG9zZSgpO1xyXG4gICAgdGhpcy5tZXNoLmdlb21ldHJ5LmRpc3Bvc2UoKTtcclxuICB9XHJcblxyXG4gIHNldFJvb3RTY2VuZShyb290U2NlbmU6IE9iamVjdDNEKSB7XHJcbiAgICB0aGlzLnJvb3RTY2VuZSA9IHJvb3RTY2VuZTtcclxuICB9XHJcblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElQbGFuZVJlbmRlcmVyIGV4dGVuZHMgU2NlbmVDb21wb25lbnQge1xyXG4gIGlucHV0czogSW5wdXRzO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgcGxhbmVSZW5kZXJlclR5cGUgPSAnbXAucGxhbmVSZW5kZXJlcic7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWFrZVBsYW5lUmVuZGVyZXIoKSB7XHJcbiAgcmV0dXJuIG5ldyBQbGFuZVJlbmRlcmVyKCk7XHJcbn1cclxuIl19
@@ -136,4 +136,4 @@ export var Keys;
136
136
  Keys[Keys["ALT"] = 18] = "ALT";
137
137
  Keys[Keys["CONTROL"] = 17] = "CONTROL";
138
138
  })(Keys || (Keys = {}));
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVDb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL21hdHRlcnBvcnQtZXh0ZW5zaW9ucy9zY2VuZS1jb21wb25lbnQvU2NlbmVDb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7Ozs7R0FJRztBQUNILE1BQWUscUJBQXFCO0NBcURuQztBQUVELE1BQU0sT0FBZ0IsY0FBZSxTQUFRLHFCQUFxQjtJQUNoRTs7OztPQUlHO0lBQ0gsTUFBTSxDQUFhO0lBa0NuQjs7O09BR0c7SUFDSCxLQUFLLENBQTJCO0NBTWpDO0FBc0REOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksd0JBcUJYO0FBckJELFdBQVksd0JBQXdCO0lBQ2xDLG1CQUFtQjtJQUNuQix1REFBMkIsQ0FBQTtJQUMzQixtQkFBbUI7SUFDbkIsdURBQTJCLENBQUE7SUFDM0Isd0NBQXdDO0lBQ3hDLHFEQUF5QixDQUFBO0lBQ3pCLGlFQUFxQyxDQUFBO0lBQ3JDLDZEQUFpQyxDQUFBO0lBQ2pDLHFFQUF5QyxDQUFBO0lBQ3pDLHlFQUE2QyxDQUFBO0lBQzdDLHlEQUE2QixDQUFBO0lBQzdCLG1EQUF1QixDQUFBO0lBQ3ZCLDZFQUFpRCxDQUFBO0lBQ2pELHlFQUE2QyxDQUFBO0lBQzdDLG1FQUF1QyxDQUFBO0lBQ3ZDLDJFQUErQyxDQUFBO0lBQy9DLHVEQUEyQixDQUFBO0lBQzNCLCtEQUFtQyxDQUFBO0lBQ25DLHlEQUE2QixDQUFBO0lBQzdCLGlFQUFxQyxDQUFBO0FBQ3ZDLENBQUMsRUFyQlcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQXFCbkM7QUFFRCxNQUFlLHVCQUF1QjtDQUdyQztBQUlELE1BQU0sWUFBYSxTQUFRLHVCQUF1QjtDQUFJO0FBdUR0RCxNQUFNLENBQU4sSUFBWSxhQU9YO0FBUEQsV0FBWSxhQUFhO0lBQ3ZCLHVEQUFPLENBQUE7SUFDUCxxREFBTSxDQUFBO0lBQ04sMkRBQVMsQ0FBQTtJQUNULGlEQUFJLENBQUE7SUFDSix1REFBTyxDQUFBO0lBQ1AsbURBQUssQ0FBQTtBQUNQLENBQUMsRUFQVyxhQUFhLEtBQWIsYUFBYSxRQU94QjtBQUVELE1BQU0sQ0FBTixJQUFZLGlCQVFYO0FBUkQsV0FBWSxpQkFBaUI7SUFDM0IseURBQUksQ0FBQTtJQUNKLCtEQUFvQyxDQUFBO0lBQ3BDLG1FQUF3QyxDQUFBO0lBQ3hDLDZEQUFrQyxDQUFBO0lBQ2xDLHlEQUE4QixDQUFBO0lBQzlCLGdFQUFvQyxDQUFBO0lBQ3BDLHdEQUFvQyxDQUFBO0FBQ3RDLENBQUMsRUFSVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBUTVCO0FBRUQsTUFBTSxDQUFOLElBQVksYUFLWDtBQUxELFdBQVksYUFBYTtJQUN2QixnQ0FBZSxDQUFBO0lBQ2YsZ0NBQWUsQ0FBQTtJQUNmLDRCQUFXLENBQUE7SUFDWCxvQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsYUFBYSxLQUFiLGFBQWEsUUFLeEI7QUF1REQsTUFBTSxDQUFOLElBQVksUUFJWDtBQUpELFdBQVksUUFBUTtJQUNsQix1Q0FBSSxDQUFBO0lBQ0osNkNBQU8sQ0FBQTtJQUNQLG1DQUFFLENBQUE7QUFDSixDQUFDLEVBSlcsUUFBUSxLQUFSLFFBQVEsUUFJbkI7QUFFRCxNQUFNLENBQU4sSUFBWSxJQXNEWDtBQXRERCxXQUFZLElBQUk7SUFDZCxvQ0FBVyxDQUFBO0lBQ1gsZ0NBQVMsQ0FBQTtJQUNULDhCQUFRLENBQUE7SUFDUiw4QkFBUSxDQUFBO0lBQ1Isa0NBQVUsQ0FBQTtJQUNWLGdDQUFTLENBQUE7SUFDVCxnQ0FBUyxDQUFBO0lBQ1QsOEJBQVEsQ0FBQTtJQUNSLGtDQUFVLENBQUE7SUFDVixrQ0FBVSxDQUFBO0lBQ1YsZ0NBQVMsQ0FBQTtJQUNULDBDQUFjLENBQUE7SUFDZCxzQ0FBWSxDQUFBO0lBQ1osNENBQWUsQ0FBQTtJQUNmLDBDQUFjLENBQUE7SUFDZCw2QkFBTyxDQUFBO0lBQ1AsMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTixrQ0FBVSxDQUFBO0lBQ1Ysb0NBQVcsQ0FBQTtJQUNYLG9DQUFXLENBQUE7SUFDWCx5Q0FBYSxDQUFBO0lBQ2IsMkNBQWUsQ0FBQTtJQUNmLDZDQUFnQixDQUFBO0lBQ2hCLHFEQUFvQixDQUFBO0lBQ3BCLCtDQUFpQixDQUFBO0lBQ2pCLGtDQUFVLENBQUE7SUFDViw4QkFBUSxDQUFBO0lBQ1Isc0NBQVksQ0FBQTtBQUNkLENBQUMsRUF0RFcsSUFBSSxLQUFKLElBQUksUUFzRGYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVEhSRUUsIHsgU2NlbmUgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgRGljdCA9IE5vZGVKUy5EaWN0O1xuXG4vKipcbiAqIFRoZSBiYXNlIG9mIGFsbCBgU2NlbmVDb21wb25lbnRgIGNyZWF0ZWQgd2l0aCB0aGUgc2RrLlxuICogQWxsIHByb3BlcnRpZXMgb2YgdGhpcyBjbGFzcyBhcmUgYWx3YXlzIGF2YWlsYWJsZSB0byBhbGwgY29tcG9uZW50cyBnZW5lcmF0ZWQgdGhyb3VnaCB0aGUgc2RrLlxuICogVGhlc2UgcHJvcGVydGllcyBzaG91bGQgYWxsIGJlIGNvbnNpZGVyZWQgcmVzZXJ2ZWQgYW5kIHNob3VsZCBub3QgYmUgb3ZlcndyaXR0ZW4gYnkgdGhlIHN1YmNsYXNzLlxuICovXG5hYnN0cmFjdCBjbGFzcyBTY2VuZUNvbXBvbmVudFByaXZhdGUge1xuICAvKipcbiAgICogQHJlc2VydmVkXG4gICAqIFRoZSBuYW1lIHJlZ2lzdGVyZWQgdG8gdGhlIGZhY3RvcnkgdXNlZCB0byBnZW5lcmF0ZSB0aGlzIGNvbXBvbmVudC5cbiAgICovXG4gIGRlY2xhcmUgcmVhZG9ubHkgY29tcG9uZW50VHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcmVzZXJ2ZWRcbiAgICogQSBkaWN0aW9uYXJ5IG9mIHByb3BlcnRpZXMgdGhhdCB0aGlzIGNvbXBvbmVudCBjb21wdXRlcy4gRXZlcnkgY29tcG9uZW50IGlzIGd1YXJhbnRlZWQgdG8gaGF2ZSBgb3V0cHV0cy5jb2xsaWRlcmAgYW5kIGBvdXRwdXRzLm9iamVjdFJvb3RgLlxuICAgKiBUaGlzIGRpY3Rpb25hcnkgaXMgb2JzZXJ2YWJsZSBhbmQgY2FuIGJlIHRoZSBzb3VyY2Ugb2YgYSBiaW5kIHRhcmdldC5cbiAgICpcbiAgICovXG4gIGRlY2xhcmUgb3V0cHV0czogQ29tcG9uZW50T3V0cHV0O1xuXG4gIC8qKlxuICAgKiBAcmVzZXJ2ZWRcbiAgICogQSBkaWN0aW9uYXJ5IG9mIGV2ZW50cyB0aGF0IHdpbGwgYmUgaGFuZGxlZCBieSB0aGlzIGNvbXBvbmVudCdzIGBvbkV2ZW50YC4gRXZlcnkgY29tcG9uZW50IGlzIGd1YXJhbnRlZWQgdG8gaGF2ZSBhbGwgb2YgdGhlIGBJbnRlcmFjdGlvblNlbGVjdGlvbmAga2V5czpcbiAgICogIGBldmVudHNbSW50ZXJhY3Rpb25TZWxlY3Rpb24uQ0xJQ0tdYCwgYGV2ZW50c1tJbnRlcmFjdGlvblNlbGVjdGlvbi5IT1ZFUl1gLCBgZXZlbnRzW0ludGVyYWN0aW9uU2VsZWN0aW9uLkRSQUddYFxuICAgKiBOb3RlOiByZWdpc3RlcmluZyB0byByZWNlaXZlIGBJbnRlcmFjdGlvblNlbGVjdGlvbi5IT1ZFUmAgd2lsbCBwcm9kdWNlIGJvdGggYEludGVyYWN0aW9uVHlwZS5IT1ZFUmAgYW5kIGBJbnRlcmFjdGlvblR5cGUuVU5IT1ZFUmAgaW4gYG9uRXZlbnRgLlxuICAgKi9cbiAgZGVjbGFyZSBldmVudHM6IERpY3Q8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIEByZXNlcnZlZFxuICAgKiBUaGUgY29udGV4dCBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIHVuZGVybHlpbmcgZnJhbWV3b3JrLCBlLmcuIFRIUkVFLmpzLlxuICAgKi9cbiAgZGVjbGFyZSBjb250ZXh0OiBDb21wb25lbnRDb250ZXh0O1xuXG4gIC8qKlxuICAgKiBAcmVzZXJ2ZWRcbiAgICogQmluZHMgYHRoaXNbcHJvcF1gIHRvIHRoZSBvdXRwdXQgb2YgYHNyY1tzcmNQcm9wXWAuXG4gICAqIFdoZW4gdGhlIHZhbHVlIG9mIGBzcmNbc3JjUHJvcF1gIGNoYW5nZXMsIHRoZSB2YWx1ZSBpcyBwcm9wYWdhdGVkIGFuZCBzZXRzIGB0aGlzW3Byb3BdYCB0byB0aGUgc2FtZSB2YWx1ZSBhdXRvbWF0aWNhbGx5LlxuICAgKi9cbiAgZGVjbGFyZSBiaW5kOiAocHJvcDogc3RyaW5nLCBzcmM6IFNjZW5lQ29tcG9uZW50WydvdXRwdXRzJyB8ICdpbnB1dHMnXSwgc3JjUHJvcDoga2V5b2YgU2NlbmVDb21wb25lbnRbJ291dHB1dHMnIHwgJ2lucHV0cyddKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAcmVzZXJ2ZWRcbiAgICogTm90aWZpZXMgdGhpcyBjb21wb25lbnQgb2YgYW4gYGV2ZW50VHlwZWAgd2hlbiB0aGUgYHNyY2AgQ29tcG9uZW50IGNhbGxzIGBub3RpZnlgIHdpdGggYSBgc3JjRXZlbnRUeXBlYCBldmVudFxuICAgKi9cbiAgZGVjbGFyZSBiaW5kRXZlbnQ6IChldmVudFR5cGU6IHN0cmluZywgc3JjOiBTY2VuZUNvbXBvbmVudCwgc3JjRXZlbnRUeXBlOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEByZXNlcnZlZFxuICAgKiBOb3RpZmllcyBhbnkgZXZlbnQgYmluZGluZ3Mgb2YgYW4gZXZlbnQgd2l0aCBgZXZlbnRUeXBlYCBhbmQgZGF0YSBgZXZlbnREYXRhYFxuICAgKi9cbiAgZGVjbGFyZSBub3RpZnk6IChldmVudFR5cGU6IHN0cmluZywgZXZlbnREYXRhPzogdW5rbm93bikgPT4gdm9pZDtcblxuICAvKipcbiAgICogQHJlc2VydmVkXG4gICAqIFNweSBvbiBhIGNvbXBvbmVudCdzIG5vdGlmeSBmcm9tIG91dHNpZGUgb2YgdGhlIGNvbXBvbmVudCBzeXN0ZW1cbiAgICovXG4gIGRlY2xhcmUgc3B5T25FdmVudDogKHNweTogSUNvbXBvbmVudEV2ZW50U3B5KSA9PiBJU3Vic2NyaXB0aW9uO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2NlbmVDb21wb25lbnQgZXh0ZW5kcyBTY2VuZUNvbXBvbmVudFByaXZhdGUge1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgZGljdGlvbmFyeSBvZiBwcm9wZXJ0aWVzIHRoYXQgYWZmZWN0cyB0aGUgYmVoYXZpb3Igb2YgdGhlIGNvbXBvbmVudC5cbiAgICogVGhlIHByb3BlcnRpZXMgY2FuIGJlIGNoYW5nZWQgYnkgYW4gZXh0ZXJuYWwgc291cmNlIGF0IGFueSB0aW1lLiBJdCBpcyB1cCB0byB0aGUgY29tcG9uZW50IHRvIHJlc3BvbmQgYXBwcm9wcmlhdGVseSB0byB0aGUgY2hhbmdlcy5cbiAgICogVGhlIGlucHV0IHByb3BlcnRpZXMgY2FuIGFsc28gYmUgYmluZCB0YXJnZXRzIHRvIGFub3RoZXIgb2JzZXJ2YWJsZSBzb3VyY2UsIGUuZy4gdGhlIG91dHB1dCBwcm9wZXJ0eSBvZiBhbm90aGVyIGNvbXBvbmVudC5cbiAgICovXG4gIGlucHV0cz86IERpY3Q8YW55PjtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBjYWxsZWQgb25jZSBhZnRlciB0aGUgc2NlbmUgbm9kZSBpdHMgYXR0YWNoZWQgdG8gaGFzIHN0YXJ0ZWQuXG4gICAqL1xuICBvbkluaXQ/KCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgY2FsbGVkIGF0IG1vc3Qgb25jZSBwZXIgZnJhbWUgd2hlbiB0aGVyZSBhcmUgZXZlbnRzIG9uIHRoaXMgY29tcG9uZW50LlxuICAgKiBBbnkgb2YgdGhlIGludGVyYWN0aW9uIHR5cGVzIHNwZWNpZmllZCBpbiBgdGhpcy5pbnRlcmFjdGlvbnNgIG9yIGEgY2FsbCB0byBub3RpZnkgZm9yIGEgYm91bmQgZXZlbnQgd2lsbCB0cmlnZ2VyIHRoaXMgZXZlbnQuXG4gICAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgQ29tcG9uZW50SW50ZXJhY3Rpb25UeXBlfSBldmVudFR5cGUgVGhlIGV2ZW50IHR5cGVcbiAgICogQHByb3BlcnR5IHt1bmtub3dufSBldmVudERhdGEgVGhlIGRhdGEgcGF5bG9hZCBvZiB0aGUgZXZlbnRcbiAgICovXG4gIG9uRXZlbnQ/KGV2ZW50VHlwZTogc3RyaW5nLCBldmVudERhdGE6IHVua25vd24pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGNhbGxlZCBhZnRlciBhbiBpbnB1dCBwcm9wZXJ0eSBoYXMgY2hhbmdlZC5cbiAgICogSXQgd2lsbCBiZSBjYWxsZWQgYXQgbW9zdCBvbmNlIGEgZnJhbWUuXG4gICAqL1xuICBvbklucHV0c1VwZGF0ZWQ/KHByZXZpb3VzSW5wdXRzOiB0aGlzWydpbnB1dHMnXSk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgY2FsbGVkIG9uY2UgYSBmcmFtZSBhZnRlciBpbnB1dCBjaGFuZ2VzIGhhdmUgYmVlbiBkZXRlY3RlZC5cbiAgICovXG4gIG9uVGljaz8odGlja0RlbHRhOiBudW1iZXIpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAcmVzZXJ2ZWRcbiAgICogQSBkaWN0aW9uYXJ5IG9mIGV2ZW50cyB0aGF0IHdpbGwgYmUgaGFuZGxlZCBieSB0aGlzIGNvbXBvbmVudCdzIGBvbkV2ZW50YC4gRXZlcnkgY29tcG9uZW50IGlzIGd1YXJhbnRlZWQgdG8gaGF2ZSBhbGwgb2YgdGhlIGBJbnRlcmFjdGlvblNlbGVjdGlvbmAga2V5czpcbiAgICogIGBldmVudHNbSW50ZXJhY3Rpb25TZWxlY3Rpb24uQ0xJQ0tdYCwgYGV2ZW50c1tJbnRlcmFjdGlvblNlbGVjdGlvbi5IT1ZFUl1gLCBgZXZlbnRzW0ludGVyYWN0aW9uU2VsZWN0aW9uLkRSQUddYFxuICAgKiBOb3RlOiByZWdpc3RlcmluZyB0byByZWNlaXZlIGBJbnRlcmFjdGlvblNlbGVjdGlvbi5IT1ZFUmAgd2lsbCBwcm9kdWNlIGJvdGggYEludGVyYWN0aW9uVHlwZS5IT1ZFUmAgYW5kIGBJbnRlcmFjdGlvblR5cGUuVU5IT1ZFUmAgaW4gYG9uRXZlbnRgLlxuICAgKi9cbiAgZGVjbGFyZSBldmVudHM6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBAcmVzZXJ2ZWRcbiAgICogQSBkaWN0aW9uYXJ5IG9mIGV2ZW50cyB0aGF0IHdpbGwgYmUgZW1pdHRlZCBieSB0aGlzIGNvbXBvbmVudC5cbiAgICovXG4gIGVtaXRzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgY2FsbGVkIG9uY2UgcmlnaHQgYmVmb3JlIHRoZSBzY2VuZSBub2RlIGhhcyBzdG9wcGVkLlxuICAgKi9cbiAgb25EZXN0cm95PygpOiB2b2lkO1xufVxuXG4vKipcbiAqIEEgbm9kZSBvZiBhIHNjZW5lIGdyYXBoLlxuICogQWdncmVnYXRlcyBgU2NlbmVDb21wb25lbnRgIGFzIGNoaWxkcmVuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTY2VuZU5vZGUge1xuICAvKipcbiAgICogQSBodW1hbiByZWFkYWJsZSBuYW1lIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9zaXRpb24gb2YgdGhlIG5vZGUuXG4gICAqIFRoZSBwb3NpdGlvbiwgcXVhdGVybmlvbiwgc2NhbGUgdHJhbnNmb3JtcyBhcmUgYXBwbGllZCBpbiBzY2FsZSwgcXVhdGVybmlvbiwgdGhlbiBzY2FsZSBvcmRlci4gKHNhbWUgYXMgVEhSRUUuanMpXG4gICAqL1xuICByZWFkb25seSBwb3NpdGlvbjogVEhSRUUuVmVjdG9yMztcblxuICAvKipcbiAgICogVGhlIG9yaWVudGF0aW9uIG9mIHRoZSBub2RlLlxuICAgKiBUaGUgcG9zaXRpb24sIHF1YXRlcm5pb24sIHNjYWxlIHRyYW5zZm9ybXMgYXJlIGFwcGxpZWQgaW4gc2NhbGUsIHF1YXRlcm5pb24sIHRoZW4gc2NhbGUgb3JkZXIuIChzYW1lIGFzIFRIUkVFLmpzKVxuICAgKi9cbiAgcmVhZG9ubHkgcXVhdGVybmlvbjogVEhSRUUuUXVhdGVybmlvbjtcblxuICAvKipcbiAgICogVGhlIHNjYWxlIG9mIHRoZSBub2RlLlxuICAgKiBUaGUgcG9zaXRpb24sIHF1YXRlcm5pb24sIHNjYWxlIHRyYW5zZm9ybXMgYXJlIGFwcGxpZWQgaW4gc2NhbGUsIHF1YXRlcm5pb24sIHRoZW4gc2NhbGUgb3JkZXIuIChzYW1lIGFzIFRIUkVFLmpzKVxuICAgKi9cbiAgcmVhZG9ubHkgc2NhbGU6IFRIUkVFLlZlY3RvcjM7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbmQgYWRkIGEgY2hpbGQgY29tcG9uZW50IHRvIHRoaXMgbm9kZS5cbiAgICpcbiAgICogQHBhcmFtIGZhY3RvcnkgVGhlIG5hbWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBmYWN0b3J5IHRvIGdlbmVyYXRlIGEgYFNjZW5lQ29tcG9uZW50YFxuICAgKiBAcGFyYW0gaW5pdGlhbElucHV0cyBBbiBpbml0aWFsIHNldCBvZiBpbnB1dHMsIGltbWVkaWF0ZWx5IGF2YWlsYWJsZSB0byB0aGUgbmV3bHkgY3JlYXRlIGBTY2VuZUNvbXBvbmVudC5vbkluaXRgXG4gICAqL1xuICBhZGRDb21wb25lbnQoZmFjdG9yeTogc3RyaW5nLCBpbml0aWFsSW5wdXRzPzogU2NlbmVDb21wb25lbnRbJ2lucHV0cyddKTogU2NlbmVDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIEFuIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgY29tcG9uZW50cyBhZGRlZCB0byB0aGlzIG5vZGUgdXNpbmcgYSBmb3Itb2YgbG9vcC5cbiAgICovXG4gIGNvbXBvbmVudEl0ZXJhdG9yKCk6IEl0ZXJhYmxlSXRlcmF0b3I8U2NlbmVDb21wb25lbnQ+O1xuXG4gIC8qKlxuICAgKiBTdGFydCB0aGUgbm9kZSBhbmQgaXRzIGNvbXBvbmVudHMuXG4gICAqL1xuICBzdGFydCgpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBTdG9wIHRoZSBub2RlIGFuZCBpdHMgY29tcG9uZW50cy5cbiAgICovXG4gIHN0b3AoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgdHlwZXMgb2YgdGhlIEludGVyYWN0aW9uIGV2ZW50cyByZWNlaXZlZCBmcm9tIHRoZSByZWdpc3RlcmVkIGBJbnRlcmFjdGlvblNlbGVjdGlvbmBcbiAqL1xuZXhwb3J0IGVudW0gQ29tcG9uZW50SW50ZXJhY3Rpb25UeXBlIHtcbiAgLyoqIENMSUNLIGV2ZW50cyAqL1xuICBDTElDSyA9ICdJTlRFUkFDVElPTi5DTElDSycsXG4gIC8qKiBIT1ZFUiBldmVudHMgKi9cbiAgSE9WRVIgPSAnSU5URVJBQ1RJT04uSE9WRVInLFxuICAvKiogRFJBRyBldmVudHMgKG1vdXNlZG93biB0aGVuIG1vdmUpICovXG4gIERSQUcgPSAnSU5URVJBQ1RJT04uRFJBRycsXG4gIERSQUdfQkVHSU4gPSAnSU5URVJBQ1RJT04uRFJBR19CRUdJTicsXG4gIERSQUdfRU5EID0gJ0lOVEVSQUNUSU9OLkRSQUdfRU5EJyxcbiAgUE9JTlRFUl9NT1ZFID0gJ0lOVEVSQUNUSU9OLlBPSU5URVJfTU9WRScsXG4gIFBPSU5URVJfQlVUVE9OID0gJ0lOVEVSQUNUSU9OLlBPSU5URVJfQlVUVE9OJyxcbiAgU0NST0xMID0gJ0lOVEVSQUNUSU9OLlNDUk9MTCcsXG4gIEtFWSA9ICdJTlRFUkFDVElPTi5LRVknLFxuICBMT05HX1BSRVNTX1NUQVJUID0gJ0lOVEVSQUNUSU9OLkxPTkdfUFJFU1NfU1RBUlQnLFxuICBMT05HX1BSRVNTX0VORCA9ICdJTlRFUkFDVElPTi5MT05HX1BSRVNTX0VORCcsXG4gIE1VTFRJX1NXSVBFID0gJ0lOVEVSQUNUSU9OLk1VTFRJX1NXSVBFJyxcbiAgTVVMVElfU1dJUEVfRU5EID0gJ0lOVEVSQUNUSU9OLk1VTFRJX1NXSVBFX0VORCcsXG4gIFBJTkNIID0gJ0lOVEVSQUNUSU9OLlBJTkNIJyxcbiAgUElOQ0hfRU5EID0gJ0lOVEVSQUNUSU9OLlBJTkNIX0VORCcsXG4gIFJPVEFURSA9ICdJTlRFUkFDVElPTi5ST1RBVEUnLFxuICBST1RBVEVfRU5EID0gJ0lOVEVSQUNUSU9OLlJPVEFURV9FTkQnLFxufVxuXG5hYnN0cmFjdCBjbGFzcyBDb21wb25lbnRPdXRwdXRSZXNlcnZlZCB7XG4gIGRlY2xhcmUgb2JqZWN0Um9vdDogVEhSRUUuT2JqZWN0M0QgfCBudWxsO1xuICBkZWNsYXJlIGNvbGxpZGVyOiBUSFJFRS5PYmplY3QzRCB8IG51bGw7XG59XG5cbi8vIEhhY2sgYXJvdW5kIHRoZSB0eXBlIHN5c3RlbSB0byBnZXQgYSBjbGVhbmVyIGludGVyZmFjZSBhcm91bmQgYENvbXBvbmVudE91dHB1dGBcbmludGVyZmFjZSBDb21wb25lbnRPdXQgZXh0ZW5kcyBEaWN0PGFueT4geyB9XG5jbGFzcyBDb21wb25lbnRPdXQgZXh0ZW5kcyBDb21wb25lbnRPdXRwdXRSZXNlcnZlZCB7IH1cblxuLyoqXG4gKiBBIGdlbmVyYWwtdXNlIGJhZyBvZiBwcm9wZXJ0aWVzLlxuICogQXQgYSBtaW5pbXVtLCBpdCBoYXMgYG9iamVjdFJvb3RgIGFuZCBgY29sbGlkZXJgIGF1dG9tYXRpY2FsbHkgZGVmaW5lZC5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tcG9uZW50T3V0cHV0ID0gQ29tcG9uZW50T3V0O1xuXG4vKipcbiAqIFRoZSBjb250ZXh0IG9mIGEgY29tcG9uZW50IChhdmFpbGFibGUgYXMgYHRoaXMuY29udGV4dGApIGluIGEgYFNjZW5lQ29tcG9uZW50YCBzdWJjbGFzcy5cbiAqIEFjY2VzcyB0byB0aGUgcm9vdCBgSVNjZW5lTm9kZWAgYW5kIHRoZSBUSFJFRS5qcyBhcmUgYXZhaWxhYmxlLlxuICovXG5leHBvcnQgdHlwZSBDb21wb25lbnRDb250ZXh0ID0ge1xuICB0aHJlZTogdHlwZW9mIFRIUkVFO1xuICByb290OiBJU2NlbmVOb2RlO1xuICByZW5kZXJlcjogVEhSRUUuV2ViR0xSZW5kZXJlcjtcbiAgdXNlcjogRGljdDxhbnk+O1xuICBzY2VuZTogU2NlbmU7XG59O1xuXG4vKipcbiAqIEEgcmF5Y2FzdCBpbnRlcnNlY3Rpb24gd2l0aCBhIG1lc2hcbiAqL1xuZXhwb3J0IHR5cGUgSW50ZXJzZWN0ID0ge1xuICBwb2ludDogVEhSRUUuVmVjdG9yMztcbiAgbm9ybWFsOiBUSFJFRS5WZWN0b3IzO1xuICBjb2xsaWRlcjogVEhSRUUuT2JqZWN0M0Q7XG59O1xuXG4vKipcbiAqIEEgc3B5IHRoYXQgY2FuIGJlIGF0dGFjaGVkIHRvIGEgY29tcG9uZW50IHVzaW5nIGBzcHlPbkV2ZW50YFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb21wb25lbnRFdmVudFNweTxUID0gdW5rbm93bj4ge1xuICByZWFkb25seSBldmVudFR5cGU6IHN0cmluZztcbiAgb25FdmVudChldmVudERhdGE/OiBUKTogdm9pZDtcbn1cblxuLyoqXG4gKiBBbiBvYmplY3QgcmVzcG9uc2libGUgZm9yIHJlbW92aW5nIGEgc3B5IGZyb20gYSBjb21wb25lbnQncyBldmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTdWJzY3JpcHRpb24ge1xuICBjYW5jZWwoKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVmVjdG9yMiB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElWZWN0b3IzIHtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHo6IG51bWJlcjtcbn1cblxuZXhwb3J0IGVudW0gUG9pbnRlckJ1dHRvbiB7XG4gIFBSSU1BUlksXG4gIE1JRERMRSxcbiAgU0VDT05EQVJZLFxuICBCQUNLLFxuICBGT1JXQVJELFxuICBDT1VOVCxcbn1cblxuZXhwb3J0IGVudW0gUG9pbnRlckJ1dHRvbk1hc2sge1xuICBOT05FLFxuICBQUklNQVJZID0gMSA8PCBQb2ludGVyQnV0dG9uLlBSSU1BUlksXG4gIFNFQ09OREFSWSA9IDEgPDwgUG9pbnRlckJ1dHRvbi5TRUNPTkRBUlksXG4gIE1JRERMRSA9IDEgPDwgUG9pbnRlckJ1dHRvbi5NSURETEUsXG4gIEJBQ0sgPSAxIDw8IFBvaW50ZXJCdXR0b24uQkFDSyxcbiAgRk9SV0FSRCA9IDEgPDwgUG9pbnRlckJ1dHRvbi5GT1JXQVJELFxuICBBTEwgPSAoMSA8PCBQb2ludGVyQnV0dG9uLkNPVU5UKSAtIDEsXG59XG5cbmV4cG9ydCBlbnVtIFBvaW50ZXJEZXZpY2Uge1xuICBNT1VTRSA9ICdtb3VzZScsXG4gIFRPVUNIID0gJ3RvdWNoJyxcbiAgUEVOID0gJ3BlbicsXG4gIEdBTUVQQUQgPSAnZ2FtZXBhZCcsXG59XG5cbi8qKlxuICogRmlyZWQgb24gZXZlcnkgbW91c2UgZG93biwgcHJvdmlkZXMgY3VycmVudCBwb3NpdGlvbi9idXR0b25zIGRvd24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHJhZ0JlZ2luRXZlbnQge1xuICAvKiogQ3VycmVudCBwb3NpdGlvbiAqL1xuICByZWFkb25seSBwb3NpdGlvbjogSVZlY3RvcjI7XG4gIC8qKiBCdXR0b25zIGRvd24gZHVyaW5nIGV2ZW50ICovXG4gIHJlYWRvbmx5IGJ1dHRvbnM6IFBvaW50ZXJCdXR0b25NYXNrO1xufVxuXG4vKipcbiAqIEZpcmVkIG9ubHkgYWZ0ZXIgdGhlIHBvaW50ZXIgaGFzIG1vdmVkIGZhciBlbm91Z2ggZnJvbSBEcmFnQmVnaW5FdmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERyYWdFdmVudCB7XG4gIC8qKiBDdXJyZW50IHBvc2l0aW9uICovXG4gIHJlYWRvbmx5IHBvc2l0aW9uOiBJVmVjdG9yMjtcbiAgLyoqIERlbHRhIG1vdmVkIHNpbmNlIGxhc3QgZHJhZyBldmVudCAqL1xuICByZWFkb25seSBkZWx0YTogSVZlY3RvcjI7XG4gIC8qKiBCdXR0b25zIGRvd24gZHVyaW5nIGV2ZW50ICovXG4gIHJlYWRvbmx5IGJ1dHRvbnM6IFBvaW50ZXJCdXR0b25NYXNrO1xufVxuXG4vKipcbiAqIEZpcmVkIG9uIGV2ZXJ5IG1vdXNlIHVwLCBpbmNsdWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBEcmFnQmVnaW4gYW5kIGN1cnJlbnQgcG9zaXRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHJhZ0VuZEV2ZW50IGV4dGVuZHMgRHJhZ0V2ZW50IHtcbiAgLyoqIGR1cmF0aW9uIHNpbmNlIGxhc3QgRHJhZ0V2ZW50ICovXG4gIHJlYWRvbmx5IHRpbWVTaW5jZUxhc3RNb3ZlOiBudW1iZXI7XG5cbiAgLyoqIFRoZSBkZWx0YSBiZXR3ZWVuIHBvc2l0aW9uLCBhbmQgdGhlIHBvc2l0aW9uIGZyb20gRHJhZ0JlZ2luRXZlbnQgKi9cbiAgcmVhZG9ubHkgZnVsbERlbHRhOiBJVmVjdG9yMjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb2ludGVyTW92ZUV2ZW50IHtcbiAgcmVhZG9ubHkgaWQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgcG9zaXRpb246IElWZWN0b3IyO1xuICByZWFkb25seSBidXR0b25zOiBQb2ludGVyQnV0dG9uTWFzaztcbiAgcmVhZG9ubHkgZGV2aWNlOiBQb2ludGVyRGV2aWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvaW50ZXJCdXR0b25FdmVudCB7XG4gIHJlYWRvbmx5IGlkOiBudW1iZXI7XG4gIHJlYWRvbmx5IHBvc2l0aW9uOiBJVmVjdG9yMjtcbiAgcmVhZG9ubHkgYnV0dG9uOiBQb2ludGVyQnV0dG9uO1xuICByZWFkb25seSBkb3duOiBib29sZWFuO1xuICByZWFkb25seSBkZXZpY2U6IFBvaW50ZXJEZXZpY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Nyb2xsRXZlbnQge1xuICByZWFkb25seSBwb3NpdGlvbjogSVZlY3RvcjI7XG4gIHJlYWRvbmx5IGRlbHRhOiBJVmVjdG9yMjtcbn1cblxuZXhwb3J0IGVudW0gS2V5U3RhdGUge1xuICBET1dOLFxuICBQUkVTU0VELFxuICBVUCxcbn1cblxuZXhwb3J0IGVudW0gS2V5cyB7XG4gIEVTQ0FQRSA9IDI3LFxuICBaRVJPID0gNDgsXG4gIE9ORSA9IDQ5LFxuICBUV08gPSA1MCxcbiAgVEhSRUUgPSA1MSxcbiAgRk9VUiA9IDUyLFxuICBGSVZFID0gNTMsXG4gIFNJWCA9IDU0LFxuICBTRVZFTiA9IDU1LFxuICBFSUdIVCA9IDU2LFxuICBOSU5FID0gNTcsXG4gIExFRlRBUlJPVyA9IDM3LFxuICBVUEFSUk9XID0gMzgsXG4gIFJJR0hUQVJST1cgPSAzOSxcbiAgRE9XTkFSUk9XID0gNDAsXG4gIFRBQiA9IDksXG4gIEEgPSA2NSxcbiAgQiA9IDY2LFxuICBDID0gNjcsXG4gIEQgPSA2OCxcbiAgRSA9IDY5LFxuICBGID0gNzAsXG4gIEcgPSA3MSxcbiAgSCA9IDcyLFxuICBJID0gNzMsXG4gIEogPSA3NCxcbiAgSyA9IDc1LFxuICBMID0gNzYsXG4gIE0gPSA3NyxcbiAgTiA9IDc4LFxuICBPID0gNzksXG4gIFAgPSA4MCxcbiAgUSA9IDgxLFxuICBSID0gODIsXG4gIFMgPSA4MyxcbiAgVCA9IDg0LFxuICBVID0gODUsXG4gIFYgPSA4NixcbiAgVyA9IDg3LFxuICBYID0gODgsXG4gIFkgPSA4OSxcbiAgWiA9IDkwLFxuICBTUEFDRSA9IDMyLFxuICBSRVRVUk4gPSAxMyxcbiAgREVMRVRFID0gNDYsXG4gIEJBQ0tTUEFDRSA9IDgsXG4gIFNFTUlDT0xPTiA9IDE4NixcbiAgUExVU0VRVUFMUyA9IDE4NyxcbiAgREFTSFVOREVSU0NPUkUgPSAxODksXG4gIE9QRU5CUkFDS0VUID0gMjE5LFxuICBTSElGVCA9IDE2LFxuICBBTFQgPSAxOCxcbiAgQ09OVFJPTCA9IDE3LFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleUV2ZW50IHtcbiAga2V5OiBLZXlzO1xuICBzdGF0ZTogS2V5U3RhdGU7XG4gIG1vZGlmaWVyczoge1xuICAgIGFsdEtleTogYm9vbGVhbixcbiAgICBzaGlmdEtleTogYm9vbGVhbixcbiAgICBjdHJsS2V5OiBib29sZWFuXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9uZ1ByZXNzU3RhcnRFdmVudCB7XG4gIHJlYWRvbmx5IHBvc2l0aW9uOiBJVmVjdG9yMjtcbiAgcmVhZG9ubHkgYnV0dG9uczogUG9pbnRlckJ1dHRvbk1hc2s7XG4gIHJlYWRvbmx5IHRocmVzaG9sZDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvbmdQcmVzc0VuZEV2ZW50IHsgfVxuXG5leHBvcnQgaW50ZXJmYWNlIE11bHRpU3dpcGVFdmVudCB7XG4gIHJlYWRvbmx5IHBvaW50ZXJDb3VudDogbnVtYmVyO1xuICByZWFkb25seSBwb3NpdGlvbjogSVZlY3RvcjI7XG4gIHJlYWRvbmx5IGRlbHRhOiBJVmVjdG9yMjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNdWx0aVN3aXBlRW5kRXZlbnQgZXh0ZW5kcyBNdWx0aVN3aXBlRXZlbnQge1xuICByZWFkb25seSB0aW1lU2luY2VMYXN0TW92ZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpbmNoRXZlbnQge1xuICByZWFkb25seSBwaW5jaERlbHRhOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGluY2hFbmRFdmVudCBleHRlbmRzIFBpbmNoRXZlbnQge1xuICByZWFkb25seSB0aW1lU2luY2VMYXN0TW92ZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvdGF0ZUV2ZW50IHtcbiAgcmVhZG9ubHkgcm90YXRlRGVsdGE6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb3RhdGVFbmRFdmVudCBleHRlbmRzIFJvdGF0ZUV2ZW50IHtcbiAgcmVhZG9ubHkgdGltZVNpbmNlTGFzdE1vdmU6IG51bWJlcjtcbn1cbiJdfQ==
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVDb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL21hdHRlcnBvcnQtZXh0ZW5zaW9ucy9zY2VuZS1jb21wb25lbnQvU2NlbmVDb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7Ozs7R0FJRztBQUNILE1BQWUscUJBQXFCO0NBcURuQztBQUVELE1BQU0sT0FBZ0IsY0FBZSxTQUFRLHFCQUFxQjtJQUNoRTs7OztPQUlHO0lBQ0gsTUFBTSxDQUFhO0lBa0NuQjs7O09BR0c7SUFDSCxLQUFLLENBQTJCO0NBTWpDO0FBc0REOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksd0JBcUJYO0FBckJELFdBQVksd0JBQXdCO0lBQ2xDLG1CQUFtQjtJQUNuQix1REFBMkIsQ0FBQTtJQUMzQixtQkFBbUI7SUFDbkIsdURBQTJCLENBQUE7SUFDM0Isd0NBQXdDO0lBQ3hDLHFEQUF5QixDQUFBO0lBQ3pCLGlFQUFxQyxDQUFBO0lBQ3JDLDZEQUFpQyxDQUFBO0lBQ2pDLHFFQUF5QyxDQUFBO0lBQ3pDLHlFQUE2QyxDQUFBO0lBQzdDLHlEQUE2QixDQUFBO0lBQzdCLG1EQUF1QixDQUFBO0lBQ3ZCLDZFQUFpRCxDQUFBO0lBQ2pELHlFQUE2QyxDQUFBO0lBQzdDLG1FQUF1QyxDQUFBO0lBQ3ZDLDJFQUErQyxDQUFBO0lBQy9DLHVEQUEyQixDQUFBO0lBQzNCLCtEQUFtQyxDQUFBO0lBQ25DLHlEQUE2QixDQUFBO0lBQzdCLGlFQUFxQyxDQUFBO0FBQ3ZDLENBQUMsRUFyQlcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQXFCbkM7QUFFRCxNQUFlLHVCQUF1QjtDQUdyQztBQUlELE1BQU0sWUFBYSxTQUFRLHVCQUF1QjtDQUFJO0FBdUR0RCxNQUFNLENBQU4sSUFBWSxhQU9YO0FBUEQsV0FBWSxhQUFhO0lBQ3ZCLHVEQUFPLENBQUE7SUFDUCxxREFBTSxDQUFBO0lBQ04sMkRBQVMsQ0FBQTtJQUNULGlEQUFJLENBQUE7SUFDSix1REFBTyxDQUFBO0lBQ1AsbURBQUssQ0FBQTtBQUNQLENBQUMsRUFQVyxhQUFhLEtBQWIsYUFBYSxRQU94QjtBQUVELE1BQU0sQ0FBTixJQUFZLGlCQVFYO0FBUkQsV0FBWSxpQkFBaUI7SUFDM0IseURBQUksQ0FBQTtJQUNKLCtEQUFvQyxDQUFBO0lBQ3BDLG1FQUF3QyxDQUFBO0lBQ3hDLDZEQUFrQyxDQUFBO0lBQ2xDLHlEQUE4QixDQUFBO0lBQzlCLGdFQUFvQyxDQUFBO0lBQ3BDLHdEQUFvQyxDQUFBO0FBQ3RDLENBQUMsRUFSVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBUTVCO0FBRUQsTUFBTSxDQUFOLElBQVksYUFLWDtBQUxELFdBQVksYUFBYTtJQUN2QixnQ0FBZSxDQUFBO0lBQ2YsZ0NBQWUsQ0FBQTtJQUNmLDRCQUFXLENBQUE7SUFDWCxvQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsYUFBYSxLQUFiLGFBQWEsUUFLeEI7QUF1REQsTUFBTSxDQUFOLElBQVksUUFJWDtBQUpELFdBQVksUUFBUTtJQUNsQix1Q0FBSSxDQUFBO0lBQ0osNkNBQU8sQ0FBQTtJQUNQLG1DQUFFLENBQUE7QUFDSixDQUFDLEVBSlcsUUFBUSxLQUFSLFFBQVEsUUFJbkI7QUFFRCxNQUFNLENBQU4sSUFBWSxJQXNEWDtBQXRERCxXQUFZLElBQUk7SUFDZCxvQ0FBVyxDQUFBO0lBQ1gsZ0NBQVMsQ0FBQTtJQUNULDhCQUFRLENBQUE7SUFDUiw4QkFBUSxDQUFBO0lBQ1Isa0NBQVUsQ0FBQTtJQUNWLGdDQUFTLENBQUE7SUFDVCxnQ0FBUyxDQUFBO0lBQ1QsOEJBQVEsQ0FBQTtJQUNSLGtDQUFVLENBQUE7SUFDVixrQ0FBVSxDQUFBO0lBQ1YsZ0NBQVMsQ0FBQTtJQUNULDBDQUFjLENBQUE7SUFDZCxzQ0FBWSxDQUFBO0lBQ1osNENBQWUsQ0FBQTtJQUNmLDBDQUFjLENBQUE7SUFDZCw2QkFBTyxDQUFBO0lBQ1AsMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTixrQ0FBVSxDQUFBO0lBQ1Ysb0NBQVcsQ0FBQTtJQUNYLG9DQUFXLENBQUE7SUFDWCx5Q0FBYSxDQUFBO0lBQ2IsMkNBQWUsQ0FBQTtJQUNmLDZDQUFnQixDQUFBO0lBQ2hCLHFEQUFvQixDQUFBO0lBQ3BCLCtDQUFpQixDQUFBO0lBQ2pCLGtDQUFVLENBQUE7SUFDViw4QkFBUSxDQUFBO0lBQ1Isc0NBQVksQ0FBQTtBQUNkLENBQUMsRUF0RFcsSUFBSSxLQUFKLElBQUksUUFzRGYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVEhSRUUsIHsgU2NlbmUgfSBmcm9tICd0aHJlZSc7XHJcbmltcG9ydCBEaWN0ID0gTm9kZUpTLkRpY3Q7XHJcblxyXG4vKipcclxuICogVGhlIGJhc2Ugb2YgYWxsIGBTY2VuZUNvbXBvbmVudGAgY3JlYXRlZCB3aXRoIHRoZSBzZGsuXHJcbiAqIEFsbCBwcm9wZXJ0aWVzIG9mIHRoaXMgY2xhc3MgYXJlIGFsd2F5cyBhdmFpbGFibGUgdG8gYWxsIGNvbXBvbmVudHMgZ2VuZXJhdGVkIHRocm91Z2ggdGhlIHNkay5cclxuICogVGhlc2UgcHJvcGVydGllcyBzaG91bGQgYWxsIGJlIGNvbnNpZGVyZWQgcmVzZXJ2ZWQgYW5kIHNob3VsZCBub3QgYmUgb3ZlcndyaXR0ZW4gYnkgdGhlIHN1YmNsYXNzLlxyXG4gKi9cclxuYWJzdHJhY3QgY2xhc3MgU2NlbmVDb21wb25lbnRQcml2YXRlIHtcclxuICAvKipcclxuICAgKiBAcmVzZXJ2ZWRcclxuICAgKiBUaGUgbmFtZSByZWdpc3RlcmVkIHRvIHRoZSBmYWN0b3J5IHVzZWQgdG8gZ2VuZXJhdGUgdGhpcyBjb21wb25lbnQuXHJcbiAgICovXHJcbiAgZGVjbGFyZSByZWFkb25seSBjb21wb25lbnRUeXBlOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEByZXNlcnZlZFxyXG4gICAqIEEgZGljdGlvbmFyeSBvZiBwcm9wZXJ0aWVzIHRoYXQgdGhpcyBjb21wb25lbnQgY29tcHV0ZXMuIEV2ZXJ5IGNvbXBvbmVudCBpcyBndWFyYW50ZWVkIHRvIGhhdmUgYG91dHB1dHMuY29sbGlkZXJgIGFuZCBgb3V0cHV0cy5vYmplY3RSb290YC5cclxuICAgKiBUaGlzIGRpY3Rpb25hcnkgaXMgb2JzZXJ2YWJsZSBhbmQgY2FuIGJlIHRoZSBzb3VyY2Ugb2YgYSBiaW5kIHRhcmdldC5cclxuICAgKlxyXG4gICAqL1xyXG4gIGRlY2xhcmUgb3V0cHV0czogQ29tcG9uZW50T3V0cHV0O1xyXG5cclxuICAvKipcclxuICAgKiBAcmVzZXJ2ZWRcclxuICAgKiBBIGRpY3Rpb25hcnkgb2YgZXZlbnRzIHRoYXQgd2lsbCBiZSBoYW5kbGVkIGJ5IHRoaXMgY29tcG9uZW50J3MgYG9uRXZlbnRgLiBFdmVyeSBjb21wb25lbnQgaXMgZ3VhcmFudGVlZCB0byBoYXZlIGFsbCBvZiB0aGUgYEludGVyYWN0aW9uU2VsZWN0aW9uYCBrZXlzOlxyXG4gICAqICBgZXZlbnRzW0ludGVyYWN0aW9uU2VsZWN0aW9uLkNMSUNLXWAsIGBldmVudHNbSW50ZXJhY3Rpb25TZWxlY3Rpb24uSE9WRVJdYCwgYGV2ZW50c1tJbnRlcmFjdGlvblNlbGVjdGlvbi5EUkFHXWBcclxuICAgKiBOb3RlOiByZWdpc3RlcmluZyB0byByZWNlaXZlIGBJbnRlcmFjdGlvblNlbGVjdGlvbi5IT1ZFUmAgd2lsbCBwcm9kdWNlIGJvdGggYEludGVyYWN0aW9uVHlwZS5IT1ZFUmAgYW5kIGBJbnRlcmFjdGlvblR5cGUuVU5IT1ZFUmAgaW4gYG9uRXZlbnRgLlxyXG4gICAqL1xyXG4gIGRlY2xhcmUgZXZlbnRzOiBEaWN0PGJvb2xlYW4+O1xyXG5cclxuICAvKipcclxuICAgKiBAcmVzZXJ2ZWRcclxuICAgKiBUaGUgY29udGV4dCBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIHVuZGVybHlpbmcgZnJhbWV3b3JrLCBlLmcuIFRIUkVFLmpzLlxyXG4gICAqL1xyXG4gIGRlY2xhcmUgY29udGV4dDogQ29tcG9uZW50Q29udGV4dDtcclxuXHJcbiAgLyoqXHJcbiAgICogQHJlc2VydmVkXHJcbiAgICogQmluZHMgYHRoaXNbcHJvcF1gIHRvIHRoZSBvdXRwdXQgb2YgYHNyY1tzcmNQcm9wXWAuXHJcbiAgICogV2hlbiB0aGUgdmFsdWUgb2YgYHNyY1tzcmNQcm9wXWAgY2hhbmdlcywgdGhlIHZhbHVlIGlzIHByb3BhZ2F0ZWQgYW5kIHNldHMgYHRoaXNbcHJvcF1gIHRvIHRoZSBzYW1lIHZhbHVlIGF1dG9tYXRpY2FsbHkuXHJcbiAgICovXHJcbiAgZGVjbGFyZSBiaW5kOiAocHJvcDogc3RyaW5nLCBzcmM6IFNjZW5lQ29tcG9uZW50WydvdXRwdXRzJyB8ICdpbnB1dHMnXSwgc3JjUHJvcDoga2V5b2YgU2NlbmVDb21wb25lbnRbJ291dHB1dHMnIHwgJ2lucHV0cyddKSA9PiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBAcmVzZXJ2ZWRcclxuICAgKiBOb3RpZmllcyB0aGlzIGNvbXBvbmVudCBvZiBhbiBgZXZlbnRUeXBlYCB3aGVuIHRoZSBgc3JjYCBDb21wb25lbnQgY2FsbHMgYG5vdGlmeWAgd2l0aCBhIGBzcmNFdmVudFR5cGVgIGV2ZW50XHJcbiAgICovXHJcbiAgZGVjbGFyZSBiaW5kRXZlbnQ6IChldmVudFR5cGU6IHN0cmluZywgc3JjOiBTY2VuZUNvbXBvbmVudCwgc3JjRXZlbnRUeXBlOiBzdHJpbmcpID0+IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEByZXNlcnZlZFxyXG4gICAqIE5vdGlmaWVzIGFueSBldmVudCBiaW5kaW5ncyBvZiBhbiBldmVudCB3aXRoIGBldmVudFR5cGVgIGFuZCBkYXRhIGBldmVudERhdGFgXHJcbiAgICovXHJcbiAgZGVjbGFyZSBub3RpZnk6IChldmVudFR5cGU6IHN0cmluZywgZXZlbnREYXRhPzogdW5rbm93bikgPT4gdm9pZDtcclxuXHJcbiAgLyoqXHJcbiAgICogQHJlc2VydmVkXHJcbiAgICogU3B5IG9uIGEgY29tcG9uZW50J3Mgbm90aWZ5IGZyb20gb3V0c2lkZSBvZiB0aGUgY29tcG9uZW50IHN5c3RlbVxyXG4gICAqL1xyXG4gIGRlY2xhcmUgc3B5T25FdmVudDogKHNweTogSUNvbXBvbmVudEV2ZW50U3B5KSA9PiBJU3Vic2NyaXB0aW9uO1xyXG59XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2NlbmVDb21wb25lbnQgZXh0ZW5kcyBTY2VuZUNvbXBvbmVudFByaXZhdGUge1xyXG4gIC8qKlxyXG4gICAqIEFuIG9wdGlvbmFsIGRpY3Rpb25hcnkgb2YgcHJvcGVydGllcyB0aGF0IGFmZmVjdHMgdGhlIGJlaGF2aW9yIG9mIHRoZSBjb21wb25lbnQuXHJcbiAgICogVGhlIHByb3BlcnRpZXMgY2FuIGJlIGNoYW5nZWQgYnkgYW4gZXh0ZXJuYWwgc291cmNlIGF0IGFueSB0aW1lLiBJdCBpcyB1cCB0byB0aGUgY29tcG9uZW50IHRvIHJlc3BvbmQgYXBwcm9wcmlhdGVseSB0byB0aGUgY2hhbmdlcy5cclxuICAgKiBUaGUgaW5wdXQgcHJvcGVydGllcyBjYW4gYWxzbyBiZSBiaW5kIHRhcmdldHMgdG8gYW5vdGhlciBvYnNlcnZhYmxlIHNvdXJjZSwgZS5nLiB0aGUgb3V0cHV0IHByb3BlcnR5IG9mIGFub3RoZXIgY29tcG9uZW50LlxyXG4gICAqL1xyXG4gIGlucHV0cz86IERpY3Q8YW55PjtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhpcyBldmVudCBpcyBjYWxsZWQgb25jZSBhZnRlciB0aGUgc2NlbmUgbm9kZSBpdHMgYXR0YWNoZWQgdG8gaGFzIHN0YXJ0ZWQuXHJcbiAgICovXHJcbiAgb25Jbml0PygpOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBUaGlzIGV2ZW50IGlzIGNhbGxlZCBhdCBtb3N0IG9uY2UgcGVyIGZyYW1lIHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBvbiB0aGlzIGNvbXBvbmVudC5cclxuICAgKiBBbnkgb2YgdGhlIGludGVyYWN0aW9uIHR5cGVzIHNwZWNpZmllZCBpbiBgdGhpcy5pbnRlcmFjdGlvbnNgIG9yIGEgY2FsbCB0byBub3RpZnkgZm9yIGEgYm91bmQgZXZlbnQgd2lsbCB0cmlnZ2VyIHRoaXMgZXZlbnQuXHJcbiAgICogQHByb3BlcnR5IHtzdHJpbmcgfCBDb21wb25lbnRJbnRlcmFjdGlvblR5cGV9IGV2ZW50VHlwZSBUaGUgZXZlbnQgdHlwZVxyXG4gICAqIEBwcm9wZXJ0eSB7dW5rbm93bn0gZXZlbnREYXRhIFRoZSBkYXRhIHBheWxvYWQgb2YgdGhlIGV2ZW50XHJcbiAgICovXHJcbiAgb25FdmVudD8oZXZlbnRUeXBlOiBzdHJpbmcsIGV2ZW50RGF0YTogdW5rbm93bik6IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoaXMgZXZlbnQgaXMgY2FsbGVkIGFmdGVyIGFuIGlucHV0IHByb3BlcnR5IGhhcyBjaGFuZ2VkLlxyXG4gICAqIEl0IHdpbGwgYmUgY2FsbGVkIGF0IG1vc3Qgb25jZSBhIGZyYW1lLlxyXG4gICAqL1xyXG4gIG9uSW5wdXRzVXBkYXRlZD8ocHJldmlvdXNJbnB1dHM6IHRoaXNbJ2lucHV0cyddKTogdm9pZDtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhpcyBldmVudCBpcyBjYWxsZWQgb25jZSBhIGZyYW1lIGFmdGVyIGlucHV0IGNoYW5nZXMgaGF2ZSBiZWVuIGRldGVjdGVkLlxyXG4gICAqL1xyXG4gIG9uVGljaz8odGlja0RlbHRhOiBudW1iZXIpOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBAcmVzZXJ2ZWRcclxuICAgKiBBIGRpY3Rpb25hcnkgb2YgZXZlbnRzIHRoYXQgd2lsbCBiZSBoYW5kbGVkIGJ5IHRoaXMgY29tcG9uZW50J3MgYG9uRXZlbnRgLiBFdmVyeSBjb21wb25lbnQgaXMgZ3VhcmFudGVlZCB0byBoYXZlIGFsbCBvZiB0aGUgYEludGVyYWN0aW9uU2VsZWN0aW9uYCBrZXlzOlxyXG4gICAqICBgZXZlbnRzW0ludGVyYWN0aW9uU2VsZWN0aW9uLkNMSUNLXWAsIGBldmVudHNbSW50ZXJhY3Rpb25TZWxlY3Rpb24uSE9WRVJdYCwgYGV2ZW50c1tJbnRlcmFjdGlvblNlbGVjdGlvbi5EUkFHXWBcclxuICAgKiBOb3RlOiByZWdpc3RlcmluZyB0byByZWNlaXZlIGBJbnRlcmFjdGlvblNlbGVjdGlvbi5IT1ZFUmAgd2lsbCBwcm9kdWNlIGJvdGggYEludGVyYWN0aW9uVHlwZS5IT1ZFUmAgYW5kIGBJbnRlcmFjdGlvblR5cGUuVU5IT1ZFUmAgaW4gYG9uRXZlbnRgLlxyXG4gICAqL1xyXG4gIGRlY2xhcmUgZXZlbnRzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcclxuXHJcbiAgLyoqXHJcbiAgICogQHJlc2VydmVkXHJcbiAgICogQSBkaWN0aW9uYXJ5IG9mIGV2ZW50cyB0aGF0IHdpbGwgYmUgZW1pdHRlZCBieSB0aGlzIGNvbXBvbmVudC5cclxuICAgKi9cclxuICBlbWl0cz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xyXG5cclxuICAvKipcclxuICAgKiBUaGlzIGV2ZW50IGlzIGNhbGxlZCBvbmNlIHJpZ2h0IGJlZm9yZSB0aGUgc2NlbmUgbm9kZSBoYXMgc3RvcHBlZC5cclxuICAgKi9cclxuICBvbkRlc3Ryb3k/KCk6IHZvaWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBIG5vZGUgb2YgYSBzY2VuZSBncmFwaC5cclxuICogQWdncmVnYXRlcyBgU2NlbmVDb21wb25lbnRgIGFzIGNoaWxkcmVuLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBJU2NlbmVOb2RlIHtcclxuICAvKipcclxuICAgKiBBIGh1bWFuIHJlYWRhYmxlIG5hbWUgcHJvdmlkZWQgYnkgdGhlIHVzZXIuXHJcbiAgICovXHJcbiAgbmFtZTogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgcG9zaXRpb24gb2YgdGhlIG5vZGUuXHJcbiAgICogVGhlIHBvc2l0aW9uLCBxdWF0ZXJuaW9uLCBzY2FsZSB0cmFuc2Zvcm1zIGFyZSBhcHBsaWVkIGluIHNjYWxlLCBxdWF0ZXJuaW9uLCB0aGVuIHNjYWxlIG9yZGVyLiAoc2FtZSBhcyBUSFJFRS5qcylcclxuICAgKi9cclxuICByZWFkb25seSBwb3NpdGlvbjogVEhSRUUuVmVjdG9yMztcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG9yaWVudGF0aW9uIG9mIHRoZSBub2RlLlxyXG4gICAqIFRoZSBwb3NpdGlvbiwgcXVhdGVybmlvbiwgc2NhbGUgdHJhbnNmb3JtcyBhcmUgYXBwbGllZCBpbiBzY2FsZSwgcXVhdGVybmlvbiwgdGhlbiBzY2FsZSBvcmRlci4gKHNhbWUgYXMgVEhSRUUuanMpXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgcXVhdGVybmlvbjogVEhSRUUuUXVhdGVybmlvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHNjYWxlIG9mIHRoZSBub2RlLlxyXG4gICAqIFRoZSBwb3NpdGlvbiwgcXVhdGVybmlvbiwgc2NhbGUgdHJhbnNmb3JtcyBhcmUgYXBwbGllZCBpbiBzY2FsZSwgcXVhdGVybmlvbiwgdGhlbiBzY2FsZSBvcmRlci4gKHNhbWUgYXMgVEhSRUUuanMpXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2NhbGU6IFRIUkVFLlZlY3RvcjM7XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhbmQgYWRkIGEgY2hpbGQgY29tcG9uZW50IHRvIHRoaXMgbm9kZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBmYWN0b3J5IFRoZSBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmFjdG9yeSB0byBnZW5lcmF0ZSBhIGBTY2VuZUNvbXBvbmVudGBcclxuICAgKiBAcGFyYW0gaW5pdGlhbElucHV0cyBBbiBpbml0aWFsIHNldCBvZiBpbnB1dHMsIGltbWVkaWF0ZWx5IGF2YWlsYWJsZSB0byB0aGUgbmV3bHkgY3JlYXRlIGBTY2VuZUNvbXBvbmVudC5vbkluaXRgXHJcbiAgICovXHJcbiAgYWRkQ29tcG9uZW50KGZhY3Rvcnk6IHN0cmluZywgaW5pdGlhbElucHV0cz86IFNjZW5lQ29tcG9uZW50WydpbnB1dHMnXSk6IFNjZW5lQ29tcG9uZW50O1xyXG5cclxuICAvKipcclxuICAgKiBBbiBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgdGhlIGNvbXBvbmVudHMgYWRkZWQgdG8gdGhpcyBub2RlIHVzaW5nIGEgZm9yLW9mIGxvb3AuXHJcbiAgICovXHJcbiAgY29tcG9uZW50SXRlcmF0b3IoKTogSXRlcmFibGVJdGVyYXRvcjxTY2VuZUNvbXBvbmVudD47XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0YXJ0IHRoZSBub2RlIGFuZCBpdHMgY29tcG9uZW50cy5cclxuICAgKi9cclxuICBzdGFydCgpOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBTdG9wIHRoZSBub2RlIGFuZCBpdHMgY29tcG9uZW50cy5cclxuICAgKi9cclxuICBzdG9wKCk6IHZvaWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgdHlwZXMgb2YgdGhlIEludGVyYWN0aW9uIGV2ZW50cyByZWNlaXZlZCBmcm9tIHRoZSByZWdpc3RlcmVkIGBJbnRlcmFjdGlvblNlbGVjdGlvbmBcclxuICovXHJcbmV4cG9ydCBlbnVtIENvbXBvbmVudEludGVyYWN0aW9uVHlwZSB7XHJcbiAgLyoqIENMSUNLIGV2ZW50cyAqL1xyXG4gIENMSUNLID0gJ0lOVEVSQUNUSU9OLkNMSUNLJyxcclxuICAvKiogSE9WRVIgZXZlbnRzICovXHJcbiAgSE9WRVIgPSAnSU5URVJBQ1RJT04uSE9WRVInLFxyXG4gIC8qKiBEUkFHIGV2ZW50cyAobW91c2Vkb3duIHRoZW4gbW92ZSkgKi9cclxuICBEUkFHID0gJ0lOVEVSQUNUSU9OLkRSQUcnLFxyXG4gIERSQUdfQkVHSU4gPSAnSU5URVJBQ1RJT04uRFJBR19CRUdJTicsXHJcbiAgRFJBR19FTkQgPSAnSU5URVJBQ1RJT04uRFJBR19FTkQnLFxyXG4gIFBPSU5URVJfTU9WRSA9ICdJTlRFUkFDVElPTi5QT0lOVEVSX01PVkUnLFxyXG4gIFBPSU5URVJfQlVUVE9OID0gJ0lOVEVSQUNUSU9OLlBPSU5URVJfQlVUVE9OJyxcclxuICBTQ1JPTEwgPSAnSU5URVJBQ1RJT04uU0NST0xMJyxcclxuICBLRVkgPSAnSU5URVJBQ1RJT04uS0VZJyxcclxuICBMT05HX1BSRVNTX1NUQVJUID0gJ0lOVEVSQUNUSU9OLkxPTkdfUFJFU1NfU1RBUlQnLFxyXG4gIExPTkdfUFJFU1NfRU5EID0gJ0lOVEVSQUNUSU9OLkxPTkdfUFJFU1NfRU5EJyxcclxuICBNVUxUSV9TV0lQRSA9ICdJTlRFUkFDVElPTi5NVUxUSV9TV0lQRScsXHJcbiAgTVVMVElfU1dJUEVfRU5EID0gJ0lOVEVSQUNUSU9OLk1VTFRJX1NXSVBFX0VORCcsXHJcbiAgUElOQ0ggPSAnSU5URVJBQ1RJT04uUElOQ0gnLFxyXG4gIFBJTkNIX0VORCA9ICdJTlRFUkFDVElPTi5QSU5DSF9FTkQnLFxyXG4gIFJPVEFURSA9ICdJTlRFUkFDVElPTi5ST1RBVEUnLFxyXG4gIFJPVEFURV9FTkQgPSAnSU5URVJBQ1RJT04uUk9UQVRFX0VORCcsXHJcbn1cclxuXHJcbmFic3RyYWN0IGNsYXNzIENvbXBvbmVudE91dHB1dFJlc2VydmVkIHtcclxuICBkZWNsYXJlIG9iamVjdFJvb3Q6IFRIUkVFLk9iamVjdDNEIHwgbnVsbDtcclxuICBkZWNsYXJlIGNvbGxpZGVyOiBUSFJFRS5PYmplY3QzRCB8IG51bGw7XHJcbn1cclxuXHJcbi8vIEhhY2sgYXJvdW5kIHRoZSB0eXBlIHN5c3RlbSB0byBnZXQgYSBjbGVhbmVyIGludGVyZmFjZSBhcm91bmQgYENvbXBvbmVudE91dHB1dGBcclxuaW50ZXJmYWNlIENvbXBvbmVudE91dCBleHRlbmRzIERpY3Q8YW55PiB7IH1cclxuY2xhc3MgQ29tcG9uZW50T3V0IGV4dGVuZHMgQ29tcG9uZW50T3V0cHV0UmVzZXJ2ZWQgeyB9XHJcblxyXG4vKipcclxuICogQSBnZW5lcmFsLXVzZSBiYWcgb2YgcHJvcGVydGllcy5cclxuICogQXQgYSBtaW5pbXVtLCBpdCBoYXMgYG9iamVjdFJvb3RgIGFuZCBgY29sbGlkZXJgIGF1dG9tYXRpY2FsbHkgZGVmaW5lZC5cclxuICovXHJcbmV4cG9ydCB0eXBlIENvbXBvbmVudE91dHB1dCA9IENvbXBvbmVudE91dDtcclxuXHJcbi8qKlxyXG4gKiBUaGUgY29udGV4dCBvZiBhIGNvbXBvbmVudCAoYXZhaWxhYmxlIGFzIGB0aGlzLmNvbnRleHRgKSBpbiBhIGBTY2VuZUNvbXBvbmVudGAgc3ViY2xhc3MuXHJcbiAqIEFjY2VzcyB0byB0aGUgcm9vdCBgSVNjZW5lTm9kZWAgYW5kIHRoZSBUSFJFRS5qcyBhcmUgYXZhaWxhYmxlLlxyXG4gKi9cclxuZXhwb3J0IHR5cGUgQ29tcG9uZW50Q29udGV4dCA9IHtcclxuICB0aHJlZTogdHlwZW9mIFRIUkVFO1xyXG4gIHJvb3Q6IElTY2VuZU5vZGU7XHJcbiAgcmVuZGVyZXI6IFRIUkVFLldlYkdMUmVuZGVyZXI7XHJcbiAgdXNlcjogRGljdDxhbnk+O1xyXG4gIHNjZW5lOiBTY2VuZTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBBIHJheWNhc3QgaW50ZXJzZWN0aW9uIHdpdGggYSBtZXNoXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBJbnRlcnNlY3QgPSB7XHJcbiAgcG9pbnQ6IFRIUkVFLlZlY3RvcjM7XHJcbiAgbm9ybWFsOiBUSFJFRS5WZWN0b3IzO1xyXG4gIGNvbGxpZGVyOiBUSFJFRS5PYmplY3QzRDtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBBIHNweSB0aGF0IGNhbiBiZSBhdHRhY2hlZCB0byBhIGNvbXBvbmVudCB1c2luZyBgc3B5T25FdmVudGBcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvbXBvbmVudEV2ZW50U3B5PFQgPSB1bmtub3duPiB7XHJcbiAgcmVhZG9ubHkgZXZlbnRUeXBlOiBzdHJpbmc7XHJcbiAgb25FdmVudChldmVudERhdGE/OiBUKTogdm9pZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFuIG9iamVjdCByZXNwb25zaWJsZSBmb3IgcmVtb3ZpbmcgYSBzcHkgZnJvbSBhIGNvbXBvbmVudCdzIGV2ZW50XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIElTdWJzY3JpcHRpb24ge1xyXG4gIGNhbmNlbCgpOiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElWZWN0b3IyIHtcclxuICB4OiBudW1iZXI7XHJcbiAgeTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElWZWN0b3IzIHtcclxuICB4OiBudW1iZXI7XHJcbiAgeTogbnVtYmVyO1xyXG4gIHo6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUG9pbnRlckJ1dHRvbiB7XHJcbiAgUFJJTUFSWSxcclxuICBNSURETEUsXHJcbiAgU0VDT05EQVJZLFxyXG4gIEJBQ0ssXHJcbiAgRk9SV0FSRCxcclxuICBDT1VOVCxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUG9pbnRlckJ1dHRvbk1hc2sge1xyXG4gIE5PTkUsXHJcbiAgUFJJTUFSWSA9IDEgPDwgUG9pbnRlckJ1dHRvbi5QUklNQVJZLFxyXG4gIFNFQ09OREFSWSA9IDEgPDwgUG9pbnRlckJ1dHRvbi5TRUNPTkRBUlksXHJcbiAgTUlERExFID0gMSA8PCBQb2ludGVyQnV0dG9uLk1JRERMRSxcclxuICBCQUNLID0gMSA8PCBQb2ludGVyQnV0dG9uLkJBQ0ssXHJcbiAgRk9SV0FSRCA9IDEgPDwgUG9pbnRlckJ1dHRvbi5GT1JXQVJELFxyXG4gIEFMTCA9ICgxIDw8IFBvaW50ZXJCdXR0b24uQ09VTlQpIC0gMSxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUG9pbnRlckRldmljZSB7XHJcbiAgTU9VU0UgPSAnbW91c2UnLFxyXG4gIFRPVUNIID0gJ3RvdWNoJyxcclxuICBQRU4gPSAncGVuJyxcclxuICBHQU1FUEFEID0gJ2dhbWVwYWQnLFxyXG59XHJcblxyXG4vKipcclxuICogRmlyZWQgb24gZXZlcnkgbW91c2UgZG93biwgcHJvdmlkZXMgY3VycmVudCBwb3NpdGlvbi9idXR0b25zIGRvd24uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIERyYWdCZWdpbkV2ZW50IHtcclxuICAvKiogQ3VycmVudCBwb3NpdGlvbiAqL1xyXG4gIHJlYWRvbmx5IHBvc2l0aW9uOiBJVmVjdG9yMjtcclxuICAvKiogQnV0dG9ucyBkb3duIGR1cmluZyBldmVudCAqL1xyXG4gIHJlYWRvbmx5IGJ1dHRvbnM6IFBvaW50ZXJCdXR0b25NYXNrO1xyXG59XHJcblxyXG4vKipcclxuICogRmlyZWQgb25seSBhZnRlciB0aGUgcG9pbnRlciBoYXMgbW92ZWQgZmFyIGVub3VnaCBmcm9tIERyYWdCZWdpbkV2ZW50XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIERyYWdFdmVudCB7XHJcbiAgLyoqIEN1cnJlbnQgcG9zaXRpb24gKi9cclxuICByZWFkb25seSBwb3NpdGlvbjogSVZlY3RvcjI7XHJcbiAgLyoqIERlbHRhIG1vdmVkIHNpbmNlIGxhc3QgZHJhZyBldmVudCAqL1xyXG4gIHJlYWRvbmx5IGRlbHRhOiBJVmVjdG9yMjtcclxuICAvKiogQnV0dG9ucyBkb3duIGR1cmluZyBldmVudCAqL1xyXG4gIHJlYWRvbmx5IGJ1dHRvbnM6IFBvaW50ZXJCdXR0b25NYXNrO1xyXG59XHJcblxyXG4vKipcclxuICogRmlyZWQgb24gZXZlcnkgbW91c2UgdXAsIGluY2x1ZGVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIERyYWdCZWdpbiBhbmQgY3VycmVudCBwb3NpdGlvbnNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgRHJhZ0VuZEV2ZW50IGV4dGVuZHMgRHJhZ0V2ZW50IHtcclxuICAvKiogZHVyYXRpb24gc2luY2UgbGFzdCBEcmFnRXZlbnQgKi9cclxuICByZWFkb25seSB0aW1lU2luY2VMYXN0TW92ZTogbnVtYmVyO1xyXG5cclxuICAvKiogVGhlIGRlbHRhIGJldHdlZW4gcG9zaXRpb24sIGFuZCB0aGUgcG9zaXRpb24gZnJvbSBEcmFnQmVnaW5FdmVudCAqL1xyXG4gIHJlYWRvbmx5IGZ1bGxEZWx0YTogSVZlY3RvcjI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUG9pbnRlck1vdmVFdmVudCB7XHJcbiAgcmVhZG9ubHkgaWQ6IG51bWJlcjtcclxuICByZWFkb25seSBwb3NpdGlvbjogSVZlY3RvcjI7XHJcbiAgcmVhZG9ubHkgYnV0dG9uczogUG9pbnRlckJ1dHRvbk1hc2s7XHJcbiAgcmVhZG9ubHkgZGV2aWNlOiBQb2ludGVyRGV2aWNlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBvaW50ZXJCdXR0b25FdmVudCB7XHJcbiAgcmVhZG9ubHkgaWQ6IG51bWJlcjtcclxuICByZWFkb25seSBwb3NpdGlvbjogSVZlY3RvcjI7XHJcbiAgcmVhZG9ubHkgYnV0dG9uOiBQb2ludGVyQnV0dG9uO1xyXG4gIHJlYWRvbmx5IGRvd246IGJvb2xlYW47XHJcbiAgcmVhZG9ubHkgZGV2aWNlOiBQb2ludGVyRGV2aWNlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNjcm9sbEV2ZW50IHtcclxuICByZWFkb25seSBwb3NpdGlvbjogSVZlY3RvcjI7XHJcbiAgcmVhZG9ubHkgZGVsdGE6IElWZWN0b3IyO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBLZXlTdGF0ZSB7XHJcbiAgRE9XTixcclxuICBQUkVTU0VELFxyXG4gIFVQLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBLZXlzIHtcclxuICBFU0NBUEUgPSAyNyxcclxuICBaRVJPID0gNDgsXHJcbiAgT05FID0gNDksXHJcbiAgVFdPID0gNTAsXHJcbiAgVEhSRUUgPSA1MSxcclxuICBGT1VSID0gNTIsXHJcbiAgRklWRSA9IDUzLFxyXG4gIFNJWCA9IDU0LFxyXG4gIFNFVkVOID0gNTUsXHJcbiAgRUlHSFQgPSA1NixcclxuICBOSU5FID0gNTcsXHJcbiAgTEVGVEFSUk9XID0gMzcsXHJcbiAgVVBBUlJPVyA9IDM4LFxyXG4gIFJJR0hUQVJST1cgPSAzOSxcclxuICBET1dOQVJST1cgPSA0MCxcclxuICBUQUIgPSA5LFxyXG4gIEEgPSA2NSxcclxuICBCID0gNjYsXHJcbiAgQyA9IDY3LFxyXG4gIEQgPSA2OCxcclxuICBFID0gNjksXHJcbiAgRiA9IDcwLFxyXG4gIEcgPSA3MSxcclxuICBIID0gNzIsXHJcbiAgSSA9IDczLFxyXG4gIEogPSA3NCxcclxuICBLID0gNzUsXHJcbiAgTCA9IDc2LFxyXG4gIE0gPSA3NyxcclxuICBOID0gNzgsXHJcbiAgTyA9IDc5LFxyXG4gIFAgPSA4MCxcclxuICBRID0gODEsXHJcbiAgUiA9IDgyLFxyXG4gIFMgPSA4MyxcclxuICBUID0gODQsXHJcbiAgVSA9IDg1LFxyXG4gIFYgPSA4NixcclxuICBXID0gODcsXHJcbiAgWCA9IDg4LFxyXG4gIFkgPSA4OSxcclxuICBaID0gOTAsXHJcbiAgU1BBQ0UgPSAzMixcclxuICBSRVRVUk4gPSAxMyxcclxuICBERUxFVEUgPSA0NixcclxuICBCQUNLU1BBQ0UgPSA4LFxyXG4gIFNFTUlDT0xPTiA9IDE4NixcclxuICBQTFVTRVFVQUxTID0gMTg3LFxyXG4gIERBU0hVTkRFUlNDT1JFID0gMTg5LFxyXG4gIE9QRU5CUkFDS0VUID0gMjE5LFxyXG4gIFNISUZUID0gMTYsXHJcbiAgQUxUID0gMTgsXHJcbiAgQ09OVFJPTCA9IDE3LFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEtleUV2ZW50IHtcclxuICBrZXk6IEtleXM7XHJcbiAgc3RhdGU6IEtleVN0YXRlO1xyXG4gIG1vZGlmaWVyczoge1xyXG4gICAgYWx0S2V5OiBib29sZWFuLFxyXG4gICAgc2hpZnRLZXk6IGJvb2xlYW4sXHJcbiAgICBjdHJsS2V5OiBib29sZWFuXHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMb25nUHJlc3NTdGFydEV2ZW50IHtcclxuICByZWFkb25seSBwb3NpdGlvbjogSVZlY3RvcjI7XHJcbiAgcmVhZG9ubHkgYnV0dG9uczogUG9pbnRlckJ1dHRvbk1hc2s7XHJcbiAgcmVhZG9ubHkgdGhyZXNob2xkOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTG9uZ1ByZXNzRW5kRXZlbnQgeyB9XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE11bHRpU3dpcGVFdmVudCB7XHJcbiAgcmVhZG9ubHkgcG9pbnRlckNvdW50OiBudW1iZXI7XHJcbiAgcmVhZG9ubHkgcG9zaXRpb246IElWZWN0b3IyO1xyXG4gIHJlYWRvbmx5IGRlbHRhOiBJVmVjdG9yMjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNdWx0aVN3aXBlRW5kRXZlbnQgZXh0ZW5kcyBNdWx0aVN3aXBlRXZlbnQge1xyXG4gIHJlYWRvbmx5IHRpbWVTaW5jZUxhc3RNb3ZlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGluY2hFdmVudCB7XHJcbiAgcmVhZG9ubHkgcGluY2hEZWx0YTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBpbmNoRW5kRXZlbnQgZXh0ZW5kcyBQaW5jaEV2ZW50IHtcclxuICByZWFkb25seSB0aW1lU2luY2VMYXN0TW92ZTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJvdGF0ZUV2ZW50IHtcclxuICByZWFkb25seSByb3RhdGVEZWx0YTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJvdGF0ZUVuZEV2ZW50IGV4dGVuZHMgUm90YXRlRXZlbnQge1xyXG4gIHJlYWRvbmx5IHRpbWVTaW5jZUxhc3RNb3ZlOiBudW1iZXI7XHJcbn1cclxuIl19