@esotericsoftware/spine-core 4.2.82 → 4.2.84

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 (94) hide show
  1. package/LICENSE +12 -12
  2. package/dist/Animation.d.ts +6 -6
  3. package/dist/Animation.js +7 -7
  4. package/dist/AnimationState.d.ts +6 -6
  5. package/dist/AnimationState.js +7 -7
  6. package/dist/AnimationStateData.d.ts +6 -6
  7. package/dist/AnimationStateData.js +7 -7
  8. package/dist/AssetManagerBase.d.ts +6 -6
  9. package/dist/AssetManagerBase.js +7 -7
  10. package/dist/AtlasAttachmentLoader.d.ts +6 -6
  11. package/dist/AtlasAttachmentLoader.js +7 -7
  12. package/dist/Bone.d.ts +6 -6
  13. package/dist/Bone.js +7 -7
  14. package/dist/BoneData.d.ts +6 -6
  15. package/dist/BoneData.js +7 -7
  16. package/dist/ConstraintData.d.ts +6 -6
  17. package/dist/ConstraintData.js +7 -7
  18. package/dist/Event.d.ts +6 -6
  19. package/dist/Event.js +7 -7
  20. package/dist/EventData.d.ts +6 -6
  21. package/dist/EventData.js +7 -7
  22. package/dist/IkConstraint.d.ts +6 -6
  23. package/dist/IkConstraint.js +7 -7
  24. package/dist/IkConstraintData.d.ts +6 -6
  25. package/dist/IkConstraintData.js +7 -7
  26. package/dist/PathConstraint.d.ts +6 -6
  27. package/dist/PathConstraint.js +7 -7
  28. package/dist/PathConstraintData.d.ts +6 -6
  29. package/dist/PathConstraintData.js +7 -7
  30. package/dist/PhysicsConstraint.d.ts +6 -6
  31. package/dist/PhysicsConstraint.js +7 -7
  32. package/dist/PhysicsConstraintData.d.ts +6 -6
  33. package/dist/PhysicsConstraintData.js +7 -7
  34. package/dist/Skeleton.d.ts +6 -6
  35. package/dist/Skeleton.js +7 -7
  36. package/dist/SkeletonBinary.d.ts +6 -6
  37. package/dist/SkeletonBinary.js +7 -7
  38. package/dist/SkeletonBounds.d.ts +6 -6
  39. package/dist/SkeletonBounds.js +7 -7
  40. package/dist/SkeletonClipping.d.ts +6 -6
  41. package/dist/SkeletonClipping.js +7 -7
  42. package/dist/SkeletonData.d.ts +6 -6
  43. package/dist/SkeletonData.js +7 -7
  44. package/dist/SkeletonJson.d.ts +6 -6
  45. package/dist/SkeletonJson.js +7 -7
  46. package/dist/Skin.d.ts +6 -6
  47. package/dist/Skin.js +7 -7
  48. package/dist/Slot.d.ts +6 -6
  49. package/dist/Slot.js +7 -7
  50. package/dist/SlotData.d.ts +6 -6
  51. package/dist/SlotData.js +7 -7
  52. package/dist/Texture.d.ts +6 -6
  53. package/dist/Texture.js +7 -7
  54. package/dist/TextureAtlas.d.ts +6 -6
  55. package/dist/TextureAtlas.js +7 -7
  56. package/dist/TransformConstraint.d.ts +6 -6
  57. package/dist/TransformConstraint.js +7 -7
  58. package/dist/TransformConstraintData.d.ts +6 -6
  59. package/dist/TransformConstraintData.js +7 -7
  60. package/dist/Triangulator.d.ts +6 -6
  61. package/dist/Triangulator.js +7 -7
  62. package/dist/Updatable.d.ts +6 -6
  63. package/dist/Updatable.js +7 -7
  64. package/dist/Utils.d.ts +6 -6
  65. package/dist/Utils.js +7 -7
  66. package/dist/attachments/Attachment.d.ts +6 -6
  67. package/dist/attachments/Attachment.js +7 -7
  68. package/dist/attachments/AttachmentLoader.d.ts +6 -6
  69. package/dist/attachments/AttachmentLoader.js +7 -7
  70. package/dist/attachments/BoundingBoxAttachment.d.ts +6 -6
  71. package/dist/attachments/BoundingBoxAttachment.js +7 -7
  72. package/dist/attachments/ClippingAttachment.d.ts +6 -6
  73. package/dist/attachments/ClippingAttachment.js +7 -7
  74. package/dist/attachments/HasTextureRegion.d.ts +6 -6
  75. package/dist/attachments/HasTextureRegion.js +7 -7
  76. package/dist/attachments/MeshAttachment.d.ts +6 -6
  77. package/dist/attachments/MeshAttachment.js +8 -8
  78. package/dist/attachments/PathAttachment.d.ts +6 -6
  79. package/dist/attachments/PathAttachment.js +7 -7
  80. package/dist/attachments/PointAttachment.d.ts +6 -6
  81. package/dist/attachments/PointAttachment.js +7 -7
  82. package/dist/attachments/RegionAttachment.d.ts +6 -6
  83. package/dist/attachments/RegionAttachment.js +7 -7
  84. package/dist/attachments/Sequence.d.ts +6 -6
  85. package/dist/attachments/Sequence.js +7 -7
  86. package/dist/esm/spine-core.min.mjs +1 -1
  87. package/dist/esm/spine-core.mjs +1 -1
  88. package/dist/esm/spine-core.mjs.map +2 -2
  89. package/dist/iife/spine-core.js +1 -1
  90. package/dist/iife/spine-core.js.map +2 -2
  91. package/dist/iife/spine-core.min.js +1 -1
  92. package/dist/polyfills.d.ts +6 -6
  93. package/dist/polyfills.js +7 -7
  94. package/package.json +1 -1
@@ -1,16 +1,16 @@
1
1
  /******************************************************************************
2
2
  * Spine Runtimes License Agreement
3
- * Last updated July 28, 2023. Replaces all prior versions.
3
+ * Last updated April 5, 2025. Replaces all prior versions.
4
4
  *
5
- * Copyright (c) 2013-2023, Esoteric Software LLC
5
+ * Copyright (c) 2013-2025, Esoteric Software LLC
6
6
  *
7
7
  * Integration of the Spine Runtimes into software or otherwise creating
8
8
  * derivative works of the Spine Runtimes is permitted under the terms and
9
9
  * conditions of Section 2 of the Spine Editor License Agreement:
10
10
  * http://esotericsoftware.com/spine-editor-license
11
11
  *
12
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
13
- * otherwise create derivative works of the Spine Runtimes (collectively,
12
+ * Otherwise, it is permitted to integrate the Spine Runtimes into software
13
+ * or otherwise create derivative works of the Spine Runtimes (collectively,
14
14
  * "Products"), provided that each user of the Products must obtain their own
15
15
  * Spine Editor license and redistribution of the Products in any form must
16
16
  * include this license and copyright notice.
@@ -23,8 +23,8 @@
23
23
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
24
24
  * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
25
25
  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
27
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
+ * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
28
  *****************************************************************************/
29
29
  import { BoundingBoxAttachment } from "./attachments/BoundingBoxAttachment.js";
30
30
  import { Skeleton } from "./Skeleton.js";
@@ -1,16 +1,16 @@
1
1
  /******************************************************************************
2
2
  * Spine Runtimes License Agreement
3
- * Last updated July 28, 2023. Replaces all prior versions.
3
+ * Last updated April 5, 2025. Replaces all prior versions.
4
4
  *
5
- * Copyright (c) 2013-2023, Esoteric Software LLC
5
+ * Copyright (c) 2013-2025, Esoteric Software LLC
6
6
  *
7
7
  * Integration of the Spine Runtimes into software or otherwise creating
8
8
  * derivative works of the Spine Runtimes is permitted under the terms and
9
9
  * conditions of Section 2 of the Spine Editor License Agreement:
10
10
  * http://esotericsoftware.com/spine-editor-license
11
11
  *
12
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
13
- * otherwise create derivative works of the Spine Runtimes (collectively,
12
+ * Otherwise, it is permitted to integrate the Spine Runtimes into software
13
+ * or otherwise create derivative works of the Spine Runtimes (collectively,
14
14
  * "Products"), provided that each user of the Products must obtain their own
15
15
  * Spine Editor license and redistribution of the Products in any form must
16
16
  * include this license and copyright notice.
@@ -23,8 +23,8 @@
23
23
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
24
24
  * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
25
25
  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
27
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
+ * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
28
  *****************************************************************************/
29
29
  import { BoundingBoxAttachment } from "./attachments/BoundingBoxAttachment.js";
30
30
  import { Pool, Utils } from "./Utils.js";
@@ -214,4 +214,4 @@ export class SkeletonBounds {
214
214
  return this.maxY - this.minY;
215
215
  }
216
216
  }
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2tlbGV0b25Cb3VuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvU2tlbGV0b25Cb3VuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrRUEyQitFO0FBRS9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRS9FLE9BQU8sRUFBbUIsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUxRDtzRUFDc0U7QUFDdEUsTUFBTSxPQUFPLGNBQWM7SUFFMUIsc0RBQXNEO0lBQ3RELElBQUksR0FBRyxDQUFDLENBQUM7SUFFVCx3REFBd0Q7SUFDeEQsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUVULHVEQUF1RDtJQUN2RCxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBRVQscURBQXFEO0lBQ3JELElBQUksR0FBRyxDQUFDLENBQUM7SUFFVCxrQ0FBa0M7SUFDbEMsYUFBYSxHQUFHLElBQUksS0FBSyxFQUF5QixDQUFDO0lBRW5ELHdEQUF3RDtJQUN4RCxRQUFRLEdBQUcsSUFBSSxLQUFLLEVBQW1CLENBQUM7SUFFaEMsV0FBVyxHQUFHLElBQUksSUFBSSxDQUFrQixHQUFHLEVBQUU7UUFDcEQsT0FBTyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozt3RUFHb0U7SUFDcEUsTUFBTSxDQUFFLFFBQWtCLEVBQUUsVUFBbUI7UUFDOUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDM0QsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN2QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzdCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDbkMsSUFBSSxLQUFLLEdB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Q0FBQyxHQUFHLElBQUksQ0FBQztnQkFDbkQsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUFFLE9BQU8sSUFBSSxDQUFDO1lBQ25ILENBQUM7WUFDRCxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ1IsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNULENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNkLENBQUM7SUFFRCxtRUFBbUU7SUFDbkUsVUFBVSxDQUFFLFdBQWtDO1FBQzdDLElBQUksQ0FBQyxXQUFXO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ2pFLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGtEQUFrRDtJQUNsRCxRQUFRO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELG1EQUFtRDtJQUNuRCxTQUFTO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU3BpbmUgUnVudGltZXMgTGljZW5zZSBBZ3JlZW1lbnRcbiAqIExhc3QgdXBkYXRlZCBKdWx5IDI4LCAyMDIzLiBSZXBsYWNlcyBhbGwgcHJpb3IgdmVyc2lvbnMuXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjMsIEVzb3RlcmljIFNvZnR3YXJlIExMQ1xuICpcbiAqIEludGVncmF0aW9uIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yIG90aGVyd2lzZSBjcmVhdGluZ1xuICogZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgaXMgcGVybWl0dGVkIHVuZGVyIHRoZSB0ZXJtcyBhbmRcbiAqIGNvbmRpdGlvbnMgb2YgU2VjdGlvbiAyIG9mIHRoZSBTcGluZSBFZGl0b3IgTGljZW5zZSBBZ3JlZW1lbnQ6XG4gKiBodHRwOi8vZXNvdGVyaWNzb2Z0d2FyZS5jb20vc3BpbmUtZWRpdG9yLWxpY2Vuc2VcbiAqXG4gKiBPdGhlcndpc2UsIGl0IGlzIHBlcm1pdHRlZCB0byBpbnRlZ3JhdGUgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmUgb3JcbiAqIG90aGVyd2lzZSBjcmVhdGUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgKGNvbGxlY3RpdmVseSxcbiAqIFwiUHJvZHVjdHNcIiksIHByb3ZpZGVkIHRoYXQgZWFjaCB1c2VyIG9mIHRoZSBQcm9kdWN0cyBtdXN0IG9idGFpbiB0aGVpciBvd25cbiAqIFNwaW5lIEVkaXRvciBsaWNlbnNlIGFuZCByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZHVjdHMgaW4gYW55IGZvcm0gbXVzdFxuICogaW5jbHVkZSB0aGlzIGxpY2Vuc2UgYW5kIGNvcHlyaWdodCBub3RpY2UuXG4gKlxuICogVEhFIFNQSU5FIFJVTlRJTUVTIEFSRSBQUk9WSURFRCBCWSBFU09URVJJQyBTT0ZUV0FSRSBMTEMgXCJBUyBJU1wiIEFORCBBTllcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRURcbiAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkVcbiAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEVTT1RFUklDIFNPRlRXQVJFIExMQyBCRSBMSUFCTEUgRk9SIEFOWVxuICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVNcbiAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUyxcbiAqIEJVU0lORVNTIElOVEVSUlVQVElPTiwgT1IgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFMpIEhPV0VWRVIgQ0FVU0VEIEFORFxuICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlRcbiAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSEVcbiAqIFNQSU5FIFJVTlRJTUVTLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgeyBCb3VuZGluZ0JveEF0dGFjaG1lbnQgfSBmcm9tIFwiLi9hdHRhY2htZW50cy9Cb3VuZGluZ0JveEF0dGFjaG1lbnQuanNcIjtcbmltcG9ydCB7IFNrZWxldG9uIH0gZnJvbSBcIi4vU2tlbGV0b24uanNcIjtcbmltcG9ydCB7IE51bWJlckFycmF5TGlrZSwgUG9vbCwgVXRpbHMgfSBmcm9tIFwiLi9VdGlscy5qc1wiO1xuXG4vKiogQ29sbGVjdHMgZWFjaCB2aXNpYmxlIHtAbGluayBCb3VuZGluZ0JveEF0dGFjaG1lbnR9IGFuZCBjb21wdXRlcyB0aGUgd29ybGQgdmVydGljZXMgZm9yIGl0cyBwb2x5Z29uLiBUaGUgcG9seWdvbiB2ZXJ0aWNlcyBhcmVcbiAqIHByb3ZpZGVkIGFsb25nIHdpdGggY29udmVuaWVuY2UgbWV0aG9kcyBmb3IgZG9pbmcgaGl0IGRldGVjdGlvbi4gKi9cbmV4cG9ydCBjbGFzcyBTa2VsZXRvbkJvdW5kcyB7XG5cblx0LyoqIFRoZSBsZWZ0IGVkZ2Ugb2YgdGhlIGF4aXMgYWxpZ25lZCBib3VuZGluZyBib3guICovXG5cdG1pblggPSAwO1xuXG5cdC8qKiBUaGUgYm90dG9tIGVkZ2Ugb2YgdGhlIGF4aXMgYWxpZ25lZCBib3VuZGluZyBib3guICovXG5cdG1pblkgPSAwO1xuXG5cdC8qKiBUaGUgcmlnaHQgZWRnZSBvZiB0aGUgYXhpcyBhbGlnbmVkIGJvdW5kaW5nIGJveC4gKi9cblx0bWF4WCA9IDA7XG5cblx0LyoqIFRoZSB0b3AgZWRnZSBvZiB0aGUgYXhpcyBhbGlnbmVkIGJvdW5kaW5nIGJveC4gKi9cblx0bWF4WSA9IDA7XG5cblx0LyoqIFRoZSB2aXNpYmxlIGJvdW5kaW5nIGJveGVzLiAqL1xuXHRib3VuZGluZ0JveGVzID0gbmV3IEFycmF5PEJvdW5kaW5nQm94QXR0YWNobWVudD4oKTtcblxuXHQvKiogVGhlIHdvcmxkIHZlcnRpY2VzIGZvciB0aGUgYm91bmRpbmcgYm94IHBvbHlnb25zLiAqL1xuXHRwb2x5Z29ucyA9IG5ldyBBcnJheTxOdW1iZXJBcnJheUxpa2U+KCk7XG5cblx0cHJpdmF0ZSBwb2x5Z29uUG9vbCA9IG5ldyBQb29sPE51bWJlckFycmF5TGlrZT4oKCkgPT4ge1xuXHRcdHJldHVybiBVdGlscy5uZXdGbG9hdEFycmF5KDE2KTtcblx0fSk7XG5cblx0LyoqIENsZWFycyBhbnkgcHJldmlvdXMgcG9seWdvbnMsIGZpbmRzIGFsbCB2aXNpYmxlIGJvdW5kaW5nIGJveCBhdHRhY2htZW50cywgYW5kIGNvbXB1dGVzIHRoZSB3b3JsZCB2ZXJ0aWNlcyBmb3IgZWFjaCBib3VuZGluZ1xuXHQgKiBib3gncyBwb2x5Z29uLlxuXHQgKiBAcGFyYW0gdXBkYXRlQWFiYiBJZiB0cnVlLCB0aGUgYXhpcyBhbGlnbmVkIGJvdW5kaW5nIGJveCBjb250YWluaW5nIGFsbCB0aGUgcG9seWdvbnMgaXMgY29tcHV0ZWQuIElmIGZhbHNlLCB0aGVcblx0ICogICAgICAgICAgIFNrZWxldG9uQm91bmRzIEFBQkIgbWV0aG9kcyB3aWxsIGFsd2F5cyByZXR1cm4gdHJ1ZS4gKi9cblx0dXBkYXRlIChza2VsZXRvbjogU2tlbGV0b24sIHVwZGF0ZUFhYmI6IGJvb2xlYW4pIHtcblx0XHRpZiAoIXNrZWxldG9uKSB0aHJvdyBuZXcgRXJyb3IoXCJza2VsZXRvbiBjYW5ub3QgYmUgbnVsbC5cIik7XG5cdFx0bGV0IGJvdW5kaW5nQm94ZXMgPSB0aGlzLmJvdW5kaW5nQm94ZXM7XG5cdFx0bGV0IHBvbHlnb25zID0gdGhpcy5wb2x5Z29ucztcblx0XHRsZXQgcG9seWdvblBvb2wgPSB0aGlzLnBvbHlnb25Qb29sO1xuXHRcdGxldCBzbG90cyA9IHNrZWxldG9uLnNsb3RzO1xuXHRcdGxldCBzbG90Q291bnQgPSBzbG90cy5sZW5ndGg7XG5cblx0XHRib3VuZGluZ0JveGVzLmxlbmd0aCA9IDA7XG5cdFx0cG9seWdvblBvb2wuZnJlZUFsbChwb2x5Z29ucyk7XG5cdFx0cG9seWdvbnMubGVuZ3RoID0gMDtcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgc2xvdENvdW50OyBpKyspIHtcblx0XHRcdGxldCBzbG90ID0gc2xvdHNbaV07XG5cdFx0XHRpZiAoIXNsb3QuYm9uZS5hY3RpdmUpIGNvbnRpbnVlO1xuXHRcdFx0bGV0IGF0dGFjaG1lbnQgPSBzbG90LmdldEF0dGFjaG1lbnQoKTtcblx0XHRcdGlmIChhdHRhY2htZW50IGluc3RhbmNlb2YgQm91bmRpbmdCb3hBdHRhY2htZW50KSB7XG5cdFx0XHRcdGxldCBib3VuZGluZ0JveCA9IGF0dGFjaG1lbnQgYXMgQm91bmRpbmdCb3hBdHRhY2htZW50O1xuXHRcdFx0XHRib3VuZGluZ0JveGVzLnB1c2goYm91bmRpbmdCb3gpO1xuXG5cdFx0XHRcdGxldCBwb2x5Z29uID0gcG9seWdvblBvb2wub2J0YWluKCk7XG5cdFx0XHRcdGlmIChwb2x5Z29uLmxlbmd0aCAhPSBib3VuZGluZ0JveC53b3JsZFZlcnRpY2VzTGVuZ3RoKSB7XG5cdFx0XHRcdFx0cG9seWdvbiA9IFV0aWxzLm5ld0Zsb2F0QXJyYXkoYm91bmRpbmdCb3gud29ybGRWZXJ0aWNlc0xlbmd0aCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cG9seWdvbnMucHVzaChwb2x5Z29uKTtcblx0XHRcdFx0Ym91bmRpbmdCb3guY29tcHV0ZVdvcmxkVmVydGljZXMoc2xvdCwgMCwgYm91bmRpbmdCb3gud29ybGRWZXJ0aWNlc0xlbmd0aCwgcG9seWdvbiwgMCwgMik7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKHVwZGF0ZUFhYmIpIHtcblx0XHRcdHRoaXMuYWFiYkNvbXB1dGUoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5taW5YID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuXHRcdFx0dGhpcy5taW5ZID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuXHRcdFx0dGhpcy5tYXhYID0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO1xuXHRcdFx0dGhpcy5tYXhZID0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO1xuXHRcdH1cblx0fVxuXG5cdGFhYmJDb21wdXRlICgpIHtcblx0XHRsZXQgbWluWCA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSwgbWluWSA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSwgbWF4WCA9IE51bWJlci5ORUdBVElWRV9JTkZJTklUWSwgbWF4WSA9IE51bWJlci5ORUdBVElWRV9JTkZJTklUWTtcblx0XHRsZXQgcG9seWdvbnMgPSB0aGlzLnBvbHlnb25zO1xuXHRcdGZvciAobGV0IGkgPSAwLCBuID0gcG9seWdvbnMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG5cdFx0XHRsZXQgcG9seWdvbiA9IHBvbHlnb25zW2ldO1xuXHRcdFx0bGV0IHZlcnRpY2VzID0gcG9seWdvbjtcblx0XHRcdGZvciAobGV0IGlpID0gMCwgbm4gPSBwb2x5Z29uLmxlbmd0aDsgaWkgPCBubjsgaWkgKz0gMikge1xuXHRcdFx0XHRsZXQgeCA9IHZlcnRpY2VzW2lpXTtcblx0XHRcdFx0bGV0IHkgPSB2ZXJ0aWNlc1tpaSArIDFdO1xuXHRcdFx0XHRtaW5YID0gTWF0aC5taW4obWluWCwgeCk7XG5cdFx0XHRcdG1pblkgPSBNYXRoLm1pbihtaW5ZLCB5KTtcblx0XHRcdFx0bWF4WCA9IE1hdGgubWF4KG1heFgsIHgpO1xuXHRcdFx0XHRtYXhZID0gTWF0aC5tYXgobWF4WSwgeSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHRoaXMubWluWCA9IG1pblg7XG5cdFx0dGhpcy5taW5ZID0gbWluWTtcblx0XHR0aGlzLm1heFggPSBtYXhYO1xuXHRcdHRoaXMubWF4WSA9IG1heFk7XG5cdH1cblxuXHQvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBheGlzIGFsaWduZWQgYm91bmRpbmcgYm94IGNvbnRhaW5zIHRoZSBwb2ludC4gKi9cblx0YWFiYkNvbnRhaW5zUG9pbnQgKHg6IG51bWJlciwgeTogbnVtYmVyKSB7XG5cdFx0cmV0dXJuIHggPj0gdGhpcy5taW5YICYmIHggPD0gdGhpcy5tYXhYICYmIHkgPj0gdGhpcy5taW5ZICYmIHkgPD0gdGhpcy5tYXhZO1xuXHR9XG5cblx0LyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgYXhpcyBhbGlnbmVkIGJvdW5kaW5nIGJveCBpbnRlcnNlY3RzIHRoZSBsaW5lIHNlZ21lbnQuICovXG5cdGFhYmJJbnRlcnNlY3RzU2VnbWVudCAoeDE6IG51bWJlciwgeTE6IG51bWJlciwgeDI6IG51bWJlciwgeTI6IG51bWJlcikge1xuXHRcdGxldCBtaW5YID0gdGhpcy5taW5YO1xuXHRcdGxldCBtaW5ZID0gdGhpcy5taW5ZO1xuXHRcdGxldCBtYXhYID0gdGhpcy5tYXhYO1xuXHRcdGxldCBtYXhZID0gdGhpcy5tYXhZO1xuXHRcdGlmICgoeDEgPD0gbWluWCAmJiB4MiA8PSBtaW5YKSB8fCAoeTEgPD0gbWluWSAmJiB5MiA8PSBtaW5ZKSB8fCAoeDEgPj0gbWF4WCAmJiB4MiA+PSBtYXhYKSB8fCAoeTEgPj0gbWF4WSAmJiB5MiA+PSBtYXhZKSlcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRsZXQgbSA9ICh5MiAtIHkxKSAvICh4MiAtIHgxKTtcblx0XHRsZXQgeSA9IG0gKiAobWluWCAtIHgxKSArIHkxO1xuXHRcdGlmICh5ID4gbWluWSAmJiB5IDwgbWF4WSkgcmV0dXJuIHRydWU7XG5cdFx0eSA9IG0gKiAobWF4WCAtIHgxKSArIHkxO1xuXHRcdGlmICh5ID4gbWluWSAmJiB5IDwgbWF4WSkgcmV0dXJuIHRydWU7XG5cdFx0bGV0IHggPSAobWluWSAtIHkxKSAvIG0gKyB4MTtcblx0XHRpZiAoeCA+IG1pblggJiYgeCA8IG1heFgpIHJldHVybiB0cnVlO1xuXHRcdHggPSAobWF4WSAtIHkxKSAvIG0gKyB4MTtcblx0XHRpZiAoeCA+IG1pblggJiYgeCA8IG1heFgpIHJldHVybiB0cnVlO1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIGF4aXMgYWxpZ25lZCBib3VuZGluZyBib3ggaW50ZXJzZWN0cyB0aGUgYXhpcyBhbGlnbmVkIGJvdW5kaW5nIGJveCBvZiB0aGUgc3BlY2lmaWVkIGJvdW5kcy4gKi9cblx0YWFiYkludGVyc2VjdHNTa2VsZXRvbiAoYm91bmRzOiBTa2VsZXRvbkJvdW5kcykge1xuXHRcdHJldHVybiB0aGlzLm1pblggPCBib3VuZHMubWF4WCAmJiB0aGlzLm1heFggPiBib3VuZHMubWluWCAmJiB0aGlzLm1pblkgPCBib3VuZHMubWF4WSAmJiB0aGlzLm1heFkgPiBib3VuZHMubWluWTtcblx0fVxuXG5cdC8qKiBSZXR1cm5zIHRoZSBmaXJzdCBib3VuZGluZyBib3ggYXR0YWNobWVudCB0aGF0IGNvbnRhaW5zIHRoZSBwb2ludCwgb3IgbnVsbC4gV2hlbiBkb2luZyBtYW55IGNoZWNrcywgaXQgaXMgdXN1YWxseSBtb3JlXG5cdCAqIGVmZmljaWVudCB0byBvbmx5IGNhbGwgdGhpcyBtZXRob2QgaWYge0BsaW5rICNhYWJiQ29udGFpbnNQb2ludChmbG9hdCwgZmxvYXQpfSByZXR1cm5zIHRydWUuICovXG5cdGNvbnRhaW5zUG9pbnQgKHg6IG51bWJlciwgeTogbnVtYmVyKTogQm91bmRpbmdCb3hBdHRhY2htZW50IHwgbnVsbCB7XG5cdFx0bGV0IHBvbHlnb25zID0gdGhpcy5wb2x5Z29ucztcblx0XHRmb3IgKGxldCBpID0gMCwgbiA9IHBvbHlnb25zLmxlbmd0aDsgaSA8IG47IGkrKylcblx0XHRcdGlmICh0aGlzLmNvbnRhaW5zUG9pbnRQb2x5Z29uKHBvbHlnb25zW2ldLCB4LCB5KSkgcmV0dXJuIHRoaXMuYm91bmRpbmdCb3hlc1tpXTtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHBvbHlnb24gY29udGFpbnMgdGhlIHBvaW50LiAqL1xuXHRjb250YWluc1BvaW50UG9seWdvbiAocG9seWdvbjogTnVtYmVyQXJyYXlMaWtlLCB4OiBudW1iZXIsIHk6IG51bWJlcikge1xuXHRcdGxldCB2ZXJ0aWNlcyA9IHBvbHlnb247XG5cdFx0bGV0IG5uID0gcG9seWdvbi5sZW5ndGg7XG5cblx0XHRsZXQgcHJldkluZGV4ID0gbm4gLSAyO1xuXHRcdGxldCBpbnNpZGUgPSBmYWxzZTtcblx0XHRmb3IgKGxldCBpaSA9IDA7IGlpIDwgbm47IGlpICs9IDIpIHtcblx0XHRcdGxldCB2ZXJ0ZXhZID0gdmVydGljZXNbaWkgKyAxXTtcblx0XHRcdGxldCBwcmV2WSA9IHZlcnRpY2VzW3ByZXZJbmRleCArIDFdO1xuXHRcdFx0aWYgKCh2ZXJ0ZXhZIDwgeSAmJiBwcmV2WSA+PSB5KSB8fCAocHJldlkgPCB5ICYmIHZlcnRleFkgPj0geSkpIHtcblx0XHRcdFx0bGV0IHZlcnRleFggPSB2ZXJ0aWNlc1tpaV07XG5cdFx0XHRcdGlmICh2ZXJ0ZXhYICsgKHkgLSB2ZXJ0ZXhZKSAvIChwcmV2WSAtIHZlcnRleFkpICogKHZlcnRpY2VzW3ByZXZJbmRleF0gLSB2ZXJ0ZXhYKSA8IHgpIGluc2lkZSA9ICFpbnNpZGU7XG5cdFx0XHR9XG5cdFx0XHRwcmV2SW5kZXggPSBpaTtcblx0XHR9XG5cdFx0cmV0dXJuIGluc2lkZTtcblx0fVxuXG5cdC8qKiBSZXR1cm5zIHRoZSBmaXJzdCBib3VuZGluZyBib3ggYXR0YWNobWVudCB0aGF0IGNvbnRhaW5zIGFueSBwYXJ0IG9mIHRoZSBsaW5lIHNlZ21lbnQsIG9yIG51bGwuIFdoZW4gZG9pbmcgbWFueSBjaGVja3MsIGl0XG5cdCAqIGlzIHVzdWFsbHkgbW9yZSBlZmZpY2llbnQgdG8gb25seSBjYWxsIHRoaXMgbWV0aG9kIGlmIHtAbGluayAjYWFiYkludGVyc2VjdHNTZWdtZW50KCl9IHJldHVybnNcblx0ICogdHJ1ZS4gKi9cblx0aW50ZXJzZWN0c1NlZ21lbnQgKHgxOiBudW1iZXIsIHkxOiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIpIHtcblx0XHRsZXQgcG9seWdvbnMgPSB0aGlzLnBvbHlnb25zO1xuXHRcdGZvciAobGV0IGkgPSAwLCBuID0gcG9seWdvbnMubGVuZ3RoOyBpIDwgbjsgaSsrKVxuXHRcdFx0aWYgKHRoaXMuaW50ZXJzZWN0c1NlZ21lbnRQb2x5Z29uKHBvbHlnb25zW2ldLCB4MSwgeTEsIHgyLCB5MikpIHJldHVybiB0aGlzLmJvdW5kaW5nQm94ZXNbaV07XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHQvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBwb2x5Z29uIGNvbnRhaW5zIGFueSBwYXJ0IG9mIHRoZSBsaW5lIHNlZ21lbnQuICovXG5cdGludGVyc2VjdHNTZWdtZW50UG9seWdvbiAocG9seWdvbjogTnVtYmVyQXJyYXlMaWtlLCB4MTogbnVtYmVyLCB5MTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyKSB7XG5cdFx0bGV0IHZlcnRpY2VzID0gcG9seWdvbjtcblx0XHRsZXQgbm4gPSBwb2x5Z29uLmxlbmd0aDtcblxuXHRcdGxldCB3aWR0aDEyID0geDEgLSB4MiwgaGVpZ2h0MTIgPSB5MSAtIHkyO1xuXHRcdGxldCBkZXQxID0geDEgKiB5MiAtIHkxICogeDI7XG5cdFx0bGV0IHgzID0gdmVydGljZXNbbm4gLSAyXSwgeTMgPSB2ZXJ0aWNlc1tubiAtIDFdO1xuXHRcdGZvciAobGV0IGlpID0gMDsgaWkgPCBubjsgaWkgKz0gMikge1xuXHRcdFx0bGV0IHg0ID0gdmVydGljZXNbaWldLCB5NCA9IHZlcnRpY2VzW2lpICsgMV07XG5cdFx0XHRsZXQgZGV0MiA9IHgzICogeTQgLSB5MyAqIHg0O1xuXHRcdFx0bGV0IHdpZHRoMzQgPSB4MyAtIHg0LCBoZWlnaHQzNCA9IHkzIC0geTQ7XG5cdFx0XHRsZXQgZGV0MyA9IHdpZHRoMTIgKiBoZWlnaHQzNCAtIGhlaWdodDEyICogd2lkdGgzNDtcblx0XHRcdGxldCB4ID0gKGRldDEgKiB3aWR0aDM0IC0gd2lkdGgxMiAqIGRldDIpIC8gZGV0Mztcblx0XHRcdGlmICgoKHggPj0geDMgJiYgeCA8PSB4NCkgfHwgKHggPj0geDQgJiYgeCA8PSB4MykpICYmICgoeCA+PSB4MSAmJiB4IDw9IHgyKSB8fCAoeCA+PSB4MiAmJiB4IDw9IHgxKSkpIHtcblx0XHRcdFx0bGV0IHkgPSAoZGV0MSAqIGhlaWdodDM0IC0gaGVpZ2h0MTIgKiBkZXQyKSAvIGRldDM7XG5cdFx0XHRcdGlmICgoKHkgPj0geTMgJiYgeSA8PSB5NCkgfHwgKHkgPj0geTQgJiYgeSA8PSB5MykpICYmICgoeSA+PSB5MSAmJiB5IDw9IHkyKSB8fCAoeSA+PSB5MiAmJiB5IDw9IHkxKSkpIHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdFx0eDMgPSB4NDtcblx0XHRcdHkzID0geTQ7XG5cdFx0fVxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8qKiBSZXR1cm5zIHRoZSBwb2x5Z29uIGZvciB0aGUgc3BlY2lmaWVkIGJvdW5kaW5nIGJveCwgb3IgbnVsbC4gKi9cblx0Z2V0UG9seWdvbiAoYm91bmRpbmdCb3g6IEJvdW5kaW5nQm94QXR0YWNobWVudCkge1xuXHRcdGlmICghYm91bmRpbmdCb3gpIHRocm93IG5ldyBFcnJvcihcImJvdW5kaW5nQm94IGNhbm5vdCBiZSBudWxsLlwiKTtcblx0XHRsZXQgaW5kZXggPSB0aGlzLmJvdW5kaW5nQm94ZXMuaW5kZXhPZihib3VuZGluZ0JveCk7XG5cdFx0cmV0dXJuIGluZGV4ID09IC0xID8gbnVsbCA6IHRoaXMucG9seWdvbnNbaW5kZXhdO1xuXHR9XG5cblx0LyoqIFRoZSB3aWR0aCBvZiB0aGUgYXhpcyBhbGlnbmVkIGJvdW5kaW5nIGJveC4gKi9cblx0Z2V0V2lkdGggKCkge1xuXHRcdHJldHVybiB0aGlzLm1heFggLSB0aGlzLm1pblg7XG5cdH1cblxuXHQvKiogVGhlIGhlaWdodCBvZiB0aGUgYXhpcyBhbGlnbmVkIGJvdW5kaW5nIGJveC4gKi9cblx0Z2V0SGVpZ2h0ICgpIHtcblx0XHRyZXR1cm4gdGhpcy5tYXhZIC0gdGhpcy5taW5ZO1xuXHR9XG59XG4iXX0=
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2tlbGV0b25Cb3VuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvU2tlbGV0b25Cb3VuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrRUEyQitFO0FBRS9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRS9FLE9BQU8sRUFBbUIsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUxRDtzRUFDc0U7QUFDdEUsTUFBTSxPQUFPLGNBQWM7SUFFMUIsc0RBQXNEO0lBQ3RELElBQUksR0FBRyxDQUFDLENBQUM7SUFFVCx3REFBd0Q7SUFDeEQsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUVULHVEQUF1RDtJQUN2RCxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBRVQscURBQXFEO0lBQ3JELElBQUksR0FBRyxDQUFDLENBQUM7SUFFVCxrQ0FBa0M7SUFDbEMsYUFBYSxHQUFHLElBQUksS0FBSyxFQUF5QixDQUFDO0lBRW5ELHdEQUF3RDtJQUN4RCxRQUFRLEdBQUcsSUFBSSxLQUFLLEVBQW1CLENBQUM7SUFFaEMsV0FBVyxHQUFHLElBQUksSUFBSSxDQUFrQixHQUFHLEVBQUU7UUFDcEQsT0FBTyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBRUg7Ozt3RUFHb0U7SUFDcEUsTUFBTSxDQUFFLFFBQWtCLEVBQUUsVUFBbUI7UUFDOUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDM0QsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN2QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzdCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDbkMsSUFBSSxLQUFLLEdB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Q0FBQyxHQUFHLElBQUksQ0FBQztnQkFDbkQsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUFFLE9BQU8sSUFBSSxDQUFDO1lBQ25ILENBQUM7WUFDRCxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ1IsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNULENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNkLENBQUM7SUFFRCxtRUFBbUU7SUFDbkUsVUFBVSxDQUFFLFdBQWtDO1FBQzdDLElBQUksQ0FBQyxXQUFXO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ2pFLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGtEQUFrRDtJQUNsRCxRQUFRO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELG1EQUFtRDtJQUNuRCxTQUFTO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU3BpbmUgUnVudGltZXMgTGljZW5zZSBBZ3JlZW1lbnRcbiAqIExhc3QgdXBkYXRlZCBBcHJpbCA1LCAyMDI1LiBSZXBsYWNlcyBhbGwgcHJpb3IgdmVyc2lvbnMuXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjUsIEVzb3RlcmljIFNvZnR3YXJlIExMQ1xuICpcbiAqIEludGVncmF0aW9uIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yIG90aGVyd2lzZSBjcmVhdGluZ1xuICogZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgaXMgcGVybWl0dGVkIHVuZGVyIHRoZSB0ZXJtcyBhbmRcbiAqIGNvbmRpdGlvbnMgb2YgU2VjdGlvbiAyIG9mIHRoZSBTcGluZSBFZGl0b3IgTGljZW5zZSBBZ3JlZW1lbnQ6XG4gKiBodHRwOi8vZXNvdGVyaWNzb2Z0d2FyZS5jb20vc3BpbmUtZWRpdG9yLWxpY2Vuc2VcbiAqXG4gKiBPdGhlcndpc2UsIGl0IGlzIHBlcm1pdHRlZCB0byBpbnRlZ3JhdGUgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmVcbiAqIG9yIG90aGVyd2lzZSBjcmVhdGUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgKGNvbGxlY3RpdmVseSxcbiAqIFwiUHJvZHVjdHNcIiksIHByb3ZpZGVkIHRoYXQgZWFjaCB1c2VyIG9mIHRoZSBQcm9kdWN0cyBtdXN0IG9idGFpbiB0aGVpciBvd25cbiAqIFNwaW5lIEVkaXRvciBsaWNlbnNlIGFuZCByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZHVjdHMgaW4gYW55IGZvcm0gbXVzdFxuICogaW5jbHVkZSB0aGlzIGxpY2Vuc2UgYW5kIGNvcHlyaWdodCBub3RpY2UuXG4gKlxuICogVEhFIFNQSU5FIFJVTlRJTUVTIEFSRSBQUk9WSURFRCBCWSBFU09URVJJQyBTT0ZUV0FSRSBMTEMgXCJBUyBJU1wiIEFORCBBTllcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRURcbiAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkVcbiAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEVTT1RFUklDIFNPRlRXQVJFIExMQyBCRSBMSUFCTEUgRk9SIEFOWVxuICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVNcbiAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUyxcbiAqIEJVU0lORVNTIElOVEVSUlVQVElPTiwgT1IgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFMpIEhPV0VWRVIgQ0FVU0VEIEFORFxuICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlRcbiAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRlxuICogVEhFIFNQSU5FIFJVTlRJTUVTLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgeyBCb3VuZGluZ0JveEF0dGFjaG1lbnQgfSBmcm9tIFwiLi9hdHRhY2htZW50cy9Cb3VuZGluZ0JveEF0dGFjaG1lbnQuanNcIjtcbmltcG9ydCB7IFNrZWxldG9uIH0gZnJvbSBcIi4vU2tlbGV0b24uanNcIjtcbmltcG9ydCB7IE51bWJlckFycmF5TGlrZSwgUG9vbCwgVXRpbHMgfSBmcm9tIFwiLi9VdGlscy5qc1wiO1xuXG4vKiogQ29sbGVjdHMgZWFjaCB2aXNpYmxlIHtAbGluayBCb3VuZGluZ0JveEF0dGFjaG1lbnR9IGFuZCBjb21wdXRlcyB0aGUgd29ybGQgdmVydGljZXMgZm9yIGl0cyBwb2x5Z29uLiBUaGUgcG9seWdvbiB2ZXJ0aWNlcyBhcmVcbiAqIHByb3ZpZGVkIGFsb25nIHdpdGggY29udmVuaWVuY2UgbWV0aG9kcyBmb3IgZG9pbmcgaGl0IGRldGVjdGlvbi4gKi9cbmV4cG9ydCBjbGFzcyBTa2VsZXRvbkJvdW5kcyB7XG5cblx0LyoqIFRoZSBsZWZ0IGVkZ2Ugb2YgdGhlIGF4aXMgYWxpZ25lZCBib3VuZGluZyBib3guICovXG5cdG1pblggPSAwO1xuXG5cdC8qKiBUaGUgYm90dG9tIGVkZ2Ugb2YgdGhlIGF4aXMgYWxpZ25lZCBib3VuZGluZyBib3guICovXG5cdG1pblkgPSAwO1xuXG5cdC8qKiBUaGUgcmlnaHQgZWRnZSBvZiB0aGUgYXhpcyBhbGlnbmVkIGJvdW5kaW5nIGJveC4gKi9cblx0bWF4WCA9IDA7XG5cblx0LyoqIFRoZSB0b3AgZWRnZSBvZiB0aGUgYXhpcyBhbGlnbmVkIGJvdW5kaW5nIGJveC4gKi9cblx0bWF4WSA9IDA7XG5cblx0LyoqIFRoZSB2aXNpYmxlIGJvdW5kaW5nIGJveGVzLiAqL1xuXHRib3VuZGluZ0JveGVzID0gbmV3IEFycmF5PEJvdW5kaW5nQm94QXR0YWNobWVudD4oKTtcblxuXHQvKiogVGhlIHdvcmxkIHZlcnRpY2VzIGZvciB0aGUgYm91bmRpbmcgYm94IHBvbHlnb25zLiAqL1xuXHRwb2x5Z29ucyA9IG5ldyBBcnJheTxOdW1iZXJBcnJheUxpa2U+KCk7XG5cblx0cHJpdmF0ZSBwb2x5Z29uUG9vbCA9IG5ldyBQb29sPE51bWJlckFycmF5TGlrZT4oKCkgPT4ge1xuXHRcdHJldHVybiBVdGlscy5uZXdGbG9hdEFycmF5KDE2KTtcblx0fSk7XG5cblx0LyoqIENsZWFycyBhbnkgcHJldmlvdXMgcG9seWdvbnMsIGZpbmRzIGFsbCB2aXNpYmxlIGJvdW5kaW5nIGJveCBhdHRhY2htZW50cywgYW5kIGNvbXB1dGVzIHRoZSB3b3JsZCB2ZXJ0aWNlcyBmb3IgZWFjaCBib3VuZGluZ1xuXHQgKiBib3gncyBwb2x5Z29uLlxuXHQgKiBAcGFyYW0gdXBkYXRlQWFiYiBJZiB0cnVlLCB0aGUgYXhpcyBhbGlnbmVkIGJvdW5kaW5nIGJveCBjb250YWluaW5nIGFsbCB0aGUgcG9seWdvbnMgaXMgY29tcHV0ZWQuIElmIGZhbHNlLCB0aGVcblx0ICogICAgICAgICAgIFNrZWxldG9uQm91bmRzIEFBQkIgbWV0aG9kcyB3aWxsIGFsd2F5cyByZXR1cm4gdHJ1ZS4gKi9cblx0dXBkYXRlIChza2VsZXRvbjogU2tlbGV0b24sIHVwZGF0ZUFhYmI6IGJvb2xlYW4pIHtcblx0XHRpZiAoIXNrZWxldG9uKSB0aHJvdyBuZXcgRXJyb3IoXCJza2VsZXRvbiBjYW5ub3QgYmUgbnVsbC5cIik7XG5cdFx0bGV0IGJvdW5kaW5nQm94ZXMgPSB0aGlzLmJvdW5kaW5nQm94ZXM7XG5cdFx0bGV0IHBvbHlnb25zID0gdGhpcy5wb2x5Z29ucztcblx0XHRsZXQgcG9seWdvblBvb2wgPSB0aGlzLnBvbHlnb25Qb29sO1xuXHRcdGxldCBzbG90cyA9IHNrZWxldG9uLnNsb3RzO1xuXHRcdGxldCBzbG90Q291bnQgPSBzbG90cy5sZW5ndGg7XG5cblx0XHRib3VuZGluZ0JveGVzLmxlbmd0aCA9IDA7XG5cdFx0cG9seWdvblBvb2wuZnJlZUFsbChwb2x5Z29ucyk7XG5cdFx0cG9seWdvbnMubGVuZ3RoID0gMDtcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgc2xvdENvdW50OyBpKyspIHtcblx0XHRcdGxldCBzbG90ID0gc2xvdHNbaV07XG5cdFx0XHRpZiAoIXNsb3QuYm9uZS5hY3RpdmUpIGNvbnRpbnVlO1xuXHRcdFx0bGV0IGF0dGFjaG1lbnQgPSBzbG90LmdldEF0dGFjaG1lbnQoKTtcblx0XHRcdGlmIChhdHRhY2htZW50IGluc3RhbmNlb2YgQm91bmRpbmdCb3hBdHRhY2htZW50KSB7XG5cdFx0XHRcdGxldCBib3VuZGluZ0JveCA9IGF0dGFjaG1lbnQgYXMgQm91bmRpbmdCb3hBdHRhY2htZW50O1xuXHRcdFx0XHRib3VuZGluZ0JveGVzLnB1c2goYm91bmRpbmdCb3gpO1xuXG5cdFx0XHRcdGxldCBwb2x5Z29uID0gcG9seWdvblBvb2wub2J0YWluKCk7XG5cdFx0XHRcdGlmIChwb2x5Z29uLmxlbmd0aCAhPSBib3VuZGluZ0JveC53b3JsZFZlcnRpY2VzTGVuZ3RoKSB7XG5cdFx0XHRcdFx0cG9seWdvbiA9IFV0aWxzLm5ld0Zsb2F0QXJyYXkoYm91bmRpbmdCb3gud29ybGRWZXJ0aWNlc0xlbmd0aCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cG9seWdvbnMucHVzaChwb2x5Z29uKTtcblx0XHRcdFx0Ym91bmRpbmdCb3guY29tcHV0ZVdvcmxkVmVydGljZXMoc2xvdCwgMCwgYm91bmRpbmdCb3gud29ybGRWZXJ0aWNlc0xlbmd0aCwgcG9seWdvbiwgMCwgMik7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKHVwZGF0ZUFhYmIpIHtcblx0XHRcdHRoaXMuYWFiYkNvbXB1dGUoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5taW5YID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuXHRcdFx0dGhpcy5taW5ZID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuXHRcdFx0dGhpcy5tYXhYID0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO1xuXHRcdFx0dGhpcy5tYXhZID0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO1xuXHRcdH1cblx0fVxuXG5cdGFhYmJDb21wdXRlICgpIHtcblx0XHRsZXQgbWluWCA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSwgbWluWSA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSwgbWF4WCA9IE51bWJlci5ORUdBVElWRV9JTkZJTklUWSwgbWF4WSA9IE51bWJlci5ORUdBVElWRV9JTkZJTklUWTtcblx0XHRsZXQgcG9seWdvbnMgPSB0aGlzLnBvbHlnb25zO1xuXHRcdGZvciAobGV0IGkgPSAwLCBuID0gcG9seWdvbnMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG5cdFx0XHRsZXQgcG9seWdvbiA9IHBvbHlnb25zW2ldO1xuXHRcdFx0bGV0IHZlcnRpY2VzID0gcG9seWdvbjtcblx0XHRcdGZvciAobGV0IGlpID0gMCwgbm4gPSBwb2x5Z29uLmxlbmd0aDsgaWkgPCBubjsgaWkgKz0gMikge1xuXHRcdFx0XHRsZXQgeCA9IHZlcnRpY2VzW2lpXTtcblx0XHRcdFx0bGV0IHkgPSB2ZXJ0aWNlc1tpaSArIDFdO1xuXHRcdFx0XHRtaW5YID0gTWF0aC5taW4obWluWCwgeCk7XG5cdFx0XHRcdG1pblkgPSBNYXRoLm1pbihtaW5ZLCB5KTtcblx0XHRcdFx0bWF4WCA9IE1hdGgubWF4KG1heFgsIHgpO1xuXHRcdFx0XHRtYXhZID0gTWF0aC5tYXgobWF4WSwgeSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHRoaXMubWluWCA9IG1pblg7XG5cdFx0dGhpcy5taW5ZID0gbWluWTtcblx0XHR0aGlzLm1heFggPSBtYXhYO1xuXHRcdHRoaXMubWF4WSA9IG1heFk7XG5cdH1cblxuXHQvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBheGlzIGFsaWduZWQgYm91bmRpbmcgYm94IGNvbnRhaW5zIHRoZSBwb2ludC4gKi9cblx0YWFiYkNvbnRhaW5zUG9pbnQgKHg6IG51bWJlciwgeTogbnVtYmVyKSB7XG5cdFx0cmV0dXJuIHggPj0gdGhpcy5taW5YICYmIHggPD0gdGhpcy5tYXhYICYmIHkgPj0gdGhpcy5taW5ZICYmIHkgPD0gdGhpcy5tYXhZO1xuXHR9XG5cblx0LyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgYXhpcyBhbGlnbmVkIGJvdW5kaW5nIGJveCBpbnRlcnNlY3RzIHRoZSBsaW5lIHNlZ21lbnQuICovXG5cdGFhYmJJbnRlcnNlY3RzU2VnbWVudCAoeDE6IG51bWJlciwgeTE6IG51bWJlciwgeDI6IG51bWJlciwgeTI6IG51bWJlcikge1xuXHRcdGxldCBtaW5YID0gdGhpcy5taW5YO1xuXHRcdGxldCBtaW5ZID0gdGhpcy5taW5ZO1xuXHRcdGxldCBtYXhYID0gdGhpcy5tYXhYO1xuXHRcdGxldCBtYXhZID0gdGhpcy5tYXhZO1xuXHRcdGlmICgoeDEgPD0gbWluWCAmJiB4MiA8PSBtaW5YKSB8fCAoeTEgPD0gbWluWSAmJiB5MiA8PSBtaW5ZKSB8fCAoeDEgPj0gbWF4WCAmJiB4MiA+PSBtYXhYKSB8fCAoeTEgPj0gbWF4WSAmJiB5MiA+PSBtYXhZKSlcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRsZXQgbSA9ICh5MiAtIHkxKSAvICh4MiAtIHgxKTtcblx0XHRsZXQgeSA9IG0gKiAobWluWCAtIHgxKSArIHkxO1xuXHRcdGlmICh5ID4gbWluWSAmJiB5IDwgbWF4WSkgcmV0dXJuIHRydWU7XG5cdFx0eSA9IG0gKiAobWF4WCAtIHgxKSArIHkxO1xuXHRcdGlmICh5ID4gbWluWSAmJiB5IDwgbWF4WSkgcmV0dXJuIHRydWU7XG5cdFx0bGV0IHggPSAobWluWSAtIHkxKSAvIG0gKyB4MTtcblx0XHRpZiAoeCA+IG1pblggJiYgeCA8IG1heFgpIHJldHVybiB0cnVlO1xuXHRcdHggPSAobWF4WSAtIHkxKSAvIG0gKyB4MTtcblx0XHRpZiAoeCA+IG1pblggJiYgeCA8IG1heFgpIHJldHVybiB0cnVlO1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIGF4aXMgYWxpZ25lZCBib3VuZGluZyBib3ggaW50ZXJzZWN0cyB0aGUgYXhpcyBhbGlnbmVkIGJvdW5kaW5nIGJveCBvZiB0aGUgc3BlY2lmaWVkIGJvdW5kcy4gKi9cblx0YWFiYkludGVyc2VjdHNTa2VsZXRvbiAoYm91bmRzOiBTa2VsZXRvbkJvdW5kcykge1xuXHRcdHJldHVybiB0aGlzLm1pblggPCBib3VuZHMubWF4WCAmJiB0aGlzLm1heFggPiBib3VuZHMubWluWCAmJiB0aGlzLm1pblkgPCBib3VuZHMubWF4WSAmJiB0aGlzLm1heFkgPiBib3VuZHMubWluWTtcblx0fVxuXG5cdC8qKiBSZXR1cm5zIHRoZSBmaXJzdCBib3VuZGluZyBib3ggYXR0YWNobWVudCB0aGF0IGNvbnRhaW5zIHRoZSBwb2ludCwgb3IgbnVsbC4gV2hlbiBkb2luZyBtYW55IGNoZWNrcywgaXQgaXMgdXN1YWxseSBtb3JlXG5cdCAqIGVmZmljaWVudCB0byBvbmx5IGNhbGwgdGhpcyBtZXRob2QgaWYge0BsaW5rICNhYWJiQ29udGFpbnNQb2ludChmbG9hdCwgZmxvYXQpfSByZXR1cm5zIHRydWUuICovXG5cdGNvbnRhaW5zUG9pbnQgKHg6IG51bWJlciwgeTogbnVtYmVyKTogQm91bmRpbmdCb3hBdHRhY2htZW50IHwgbnVsbCB7XG5cdFx0bGV0IHBvbHlnb25zID0gdGhpcy5wb2x5Z29ucztcblx0XHRmb3IgKGxldCBpID0gMCwgbiA9IHBvbHlnb25zLmxlbmd0aDsgaSA8IG47IGkrKylcblx0XHRcdGlmICh0aGlzLmNvbnRhaW5zUG9pbnRQb2x5Z29uKHBvbHlnb25zW2ldLCB4LCB5KSkgcmV0dXJuIHRoaXMuYm91bmRpbmdCb3hlc1tpXTtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHBvbHlnb24gY29udGFpbnMgdGhlIHBvaW50LiAqL1xuXHRjb250YWluc1BvaW50UG9seWdvbiAocG9seWdvbjogTnVtYmVyQXJyYXlMaWtlLCB4OiBudW1iZXIsIHk6IG51bWJlcikge1xuXHRcdGxldCB2ZXJ0aWNlcyA9IHBvbHlnb247XG5cdFx0bGV0IG5uID0gcG9seWdvbi5sZW5ndGg7XG5cblx0XHRsZXQgcHJldkluZGV4ID0gbm4gLSAyO1xuXHRcdGxldCBpbnNpZGUgPSBmYWxzZTtcblx0XHRmb3IgKGxldCBpaSA9IDA7IGlpIDwgbm47IGlpICs9IDIpIHtcblx0XHRcdGxldCB2ZXJ0ZXhZID0gdmVydGljZXNbaWkgKyAxXTtcblx0XHRcdGxldCBwcmV2WSA9IHZlcnRpY2VzW3ByZXZJbmRleCArIDFdO1xuXHRcdFx0aWYgKCh2ZXJ0ZXhZIDwgeSAmJiBwcmV2WSA+PSB5KSB8fCAocHJldlkgPCB5ICYmIHZlcnRleFkgPj0geSkpIHtcblx0XHRcdFx0bGV0IHZlcnRleFggPSB2ZXJ0aWNlc1tpaV07XG5cdFx0XHRcdGlmICh2ZXJ0ZXhYICsgKHkgLSB2ZXJ0ZXhZKSAvIChwcmV2WSAtIHZlcnRleFkpICogKHZlcnRpY2VzW3ByZXZJbmRleF0gLSB2ZXJ0ZXhYKSA8IHgpIGluc2lkZSA9ICFpbnNpZGU7XG5cdFx0XHR9XG5cdFx0XHRwcmV2SW5kZXggPSBpaTtcblx0XHR9XG5cdFx0cmV0dXJuIGluc2lkZTtcblx0fVxuXG5cdC8qKiBSZXR1cm5zIHRoZSBmaXJzdCBib3VuZGluZyBib3ggYXR0YWNobWVudCB0aGF0IGNvbnRhaW5zIGFueSBwYXJ0IG9mIHRoZSBsaW5lIHNlZ21lbnQsIG9yIG51bGwuIFdoZW4gZG9pbmcgbWFueSBjaGVja3MsIGl0XG5cdCAqIGlzIHVzdWFsbHkgbW9yZSBlZmZpY2llbnQgdG8gb25seSBjYWxsIHRoaXMgbWV0aG9kIGlmIHtAbGluayAjYWFiYkludGVyc2VjdHNTZWdtZW50KCl9IHJldHVybnNcblx0ICogdHJ1ZS4gKi9cblx0aW50ZXJzZWN0c1NlZ21lbnQgKHgxOiBudW1iZXIsIHkxOiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIpIHtcblx0XHRsZXQgcG9seWdvbnMgPSB0aGlzLnBvbHlnb25zO1xuXHRcdGZvciAobGV0IGkgPSAwLCBuID0gcG9seWdvbnMubGVuZ3RoOyBpIDwgbjsgaSsrKVxuXHRcdFx0aWYgKHRoaXMuaW50ZXJzZWN0c1NlZ21lbnRQb2x5Z29uKHBvbHlnb25zW2ldLCB4MSwgeTEsIHgyLCB5MikpIHJldHVybiB0aGlzLmJvdW5kaW5nQm94ZXNbaV07XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHQvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBwb2x5Z29uIGNvbnRhaW5zIGFueSBwYXJ0IG9mIHRoZSBsaW5lIHNlZ21lbnQuICovXG5cdGludGVyc2VjdHNTZWdtZW50UG9seWdvbiAocG9seWdvbjogTnVtYmVyQXJyYXlMaWtlLCB4MTogbnVtYmVyLCB5MTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyKSB7XG5cdFx0bGV0IHZlcnRpY2VzID0gcG9seWdvbjtcblx0XHRsZXQgbm4gPSBwb2x5Z29uLmxlbmd0aDtcblxuXHRcdGxldCB3aWR0aDEyID0geDEgLSB4MiwgaGVpZ2h0MTIgPSB5MSAtIHkyO1xuXHRcdGxldCBkZXQxID0geDEgKiB5MiAtIHkxICogeDI7XG5cdFx0bGV0IHgzID0gdmVydGljZXNbbm4gLSAyXSwgeTMgPSB2ZXJ0aWNlc1tubiAtIDFdO1xuXHRcdGZvciAobGV0IGlpID0gMDsgaWkgPCBubjsgaWkgKz0gMikge1xuXHRcdFx0bGV0IHg0ID0gdmVydGljZXNbaWldLCB5NCA9IHZlcnRpY2VzW2lpICsgMV07XG5cdFx0XHRsZXQgZGV0MiA9IHgzICogeTQgLSB5MyAqIHg0O1xuXHRcdFx0bGV0IHdpZHRoMzQgPSB4MyAtIHg0LCBoZWlnaHQzNCA9IHkzIC0geTQ7XG5cdFx0XHRsZXQgZGV0MyA9IHdpZHRoMTIgKiBoZWlnaHQzNCAtIGhlaWdodDEyICogd2lkdGgzNDtcblx0XHRcdGxldCB4ID0gKGRldDEgKiB3aWR0aDM0IC0gd2lkdGgxMiAqIGRldDIpIC8gZGV0Mztcblx0XHRcdGlmICgoKHggPj0geDMgJiYgeCA8PSB4NCkgfHwgKHggPj0geDQgJiYgeCA8PSB4MykpICYmICgoeCA+PSB4MSAmJiB4IDw9IHgyKSB8fCAoeCA+PSB4MiAmJiB4IDw9IHgxKSkpIHtcblx0XHRcdFx0bGV0IHkgPSAoZGV0MSAqIGhlaWdodDM0IC0gaGVpZ2h0MTIgKiBkZXQyKSAvIGRldDM7XG5cdFx0XHRcdGlmICgoKHkgPj0geTMgJiYgeSA8PSB5NCkgfHwgKHkgPj0geTQgJiYgeSA8PSB5MykpICYmICgoeSA+PSB5MSAmJiB5IDw9IHkyKSB8fCAoeSA+PSB5MiAmJiB5IDw9IHkxKSkpIHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdFx0eDMgPSB4NDtcblx0XHRcdHkzID0geTQ7XG5cdFx0fVxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8qKiBSZXR1cm5zIHRoZSBwb2x5Z29uIGZvciB0aGUgc3BlY2lmaWVkIGJvdW5kaW5nIGJveCwgb3IgbnVsbC4gKi9cblx0Z2V0UG9seWdvbiAoYm91bmRpbmdCb3g6IEJvdW5kaW5nQm94QXR0YWNobWVudCkge1xuXHRcdGlmICghYm91bmRpbmdCb3gpIHRocm93IG5ldyBFcnJvcihcImJvdW5kaW5nQm94IGNhbm5vdCBiZSBudWxsLlwiKTtcblx0XHRsZXQgaW5kZXggPSB0aGlzLmJvdW5kaW5nQm94ZXMuaW5kZXhPZihib3VuZGluZ0JveCk7XG5cdFx0cmV0dXJuIGluZGV4ID09IC0xID8gbnVsbCA6IHRoaXMucG9seWdvbnNbaW5kZXhdO1xuXHR9XG5cblx0LyoqIFRoZSB3aWR0aCBvZiB0aGUgYXhpcyBhbGlnbmVkIGJvdW5kaW5nIGJveC4gKi9cblx0Z2V0V2lkdGggKCkge1xuXHRcdHJldHVybiB0aGlzLm1heFggLSB0aGlzLm1pblg7XG5cdH1cblxuXHQvKiogVGhlIGhlaWdodCBvZiB0aGUgYXhpcyBhbGlnbmVkIGJvdW5kaW5nIGJveC4gKi9cblx0Z2V0SGVpZ2h0ICgpIHtcblx0XHRyZXR1cm4gdGhpcy5tYXhZIC0gdGhpcy5taW5ZO1xuXHR9XG59XG4iXX0=
@@ -1,16 +1,16 @@
1
1
  /******************************************************************************
2
2
  * Spine Runtimes License Agreement
3
- * Last updated July 28, 2023. Replaces all prior versions.
3
+ * Last updated April 5, 2025. Replaces all prior versions.
4
4
  *
5
- * Copyright (c) 2013-2023, Esoteric Software LLC
5
+ * Copyright (c) 2013-2025, Esoteric Software LLC
6
6
  *
7
7
  * Integration of the Spine Runtimes into software or otherwise creating
8
8
  * derivative works of the Spine Runtimes is permitted under the terms and
9
9
  * conditions of Section 2 of the Spine Editor License Agreement:
10
10
  * http://esotericsoftware.com/spine-editor-license
11
11
  *
12
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
13
- * otherwise create derivative works of the Spine Runtimes (collectively,
12
+ * Otherwise, it is permitted to integrate the Spine Runtimes into software
13
+ * or otherwise create derivative works of the Spine Runtimes (collectively,
14
14
  * "Products"), provided that each user of the Products must obtain their own
15
15
  * Spine Editor license and redistribution of the Products in any form must
16
16
  * include this license and copyright notice.
@@ -23,8 +23,8 @@
23
23
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
24
24
  * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
25
25
  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
27
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
+ * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
28
  *****************************************************************************/
29
29
  import { ClippingAttachment } from "./attachments/ClippingAttachment.js";
30
30
  import { Slot } from "./Slot.js";
@@ -1,16 +1,16 @@
1
1
  /******************************************************************************
2
2
  * Spine Runtimes License Agreement
3
- * Last updated July 28, 2023. Replaces all prior versions.
3
+ * Last updated April 5, 2025. Replaces all prior versions.
4
4
  *
5
- * Copyright (c) 2013-2023, Esoteric Software LLC
5
+ * Copyright (c) 2013-2025, Esoteric Software LLC
6
6
  *
7
7
  * Integration of the Spine Runtimes into software or otherwise creating
8
8
  * derivative works of the Spine Runtimes is permitted under the terms and
9
9
  * conditions of Section 2 of the Spine Editor License Agreement:
10
10
  * http://esotericsoftware.com/spine-editor-license
11
11
  *
12
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
13
- * otherwise create derivative works of the Spine Runtimes (collectively,
12
+ * Otherwise, it is permitted to integrate the Spine Runtimes into software
13
+ * or otherwise create derivative works of the Spine Runtimes (collectively,
14
14
  * "Products"), provided that each user of the Products must obtain their own
15
15
  * Spine Editor license and redistribution of the Products in any form must
16
16
  * include this license and copyright notice.
@@ -23,8 +23,8 @@
23
23
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
24
24
  * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
25
25
  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
27
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
+ * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
28
  *****************************************************************************/
29
29
  import { Triangulator } from "./Triangulator.js";
30
30
  import { Utils } from "./Utils.js";
@@ -484,4 +484,4 @@ export class SkeletonClipping {
484
484
  }
485
485
  }
486
486
  }
487
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2tlbGV0b25DbGlwcGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Ta2VsZXRvbkNsaXBwaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUkvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssRUFBMEIsTUFBTSxZQUFZLENBQUM7QUFFM0QsTUFBTSxPQUFPLGdCQUFnQjtJQUNwQixZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNsQyxlQUFlLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUN0QyxVQUFVLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUN6QyxlQUFlLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUN0QyxVQUFVLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUNqQyxnQkFBZ0IsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBQy9CLE9BQU8sR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBRTlCLGNBQWMsR0FBOEIsSUFBSSxDQUFDO0lBQ2pELGdCQUFnQixHQUFnQyxJQUFJLENBQUM7SUFFN0QsU0FBUyxDQUFFLElBQVUsRUFBRSxJQUF3QjtRQUM5QyxJQUFJLElBQUksQ0FBQyxjQUFjO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFFM0IsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ2pDLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMs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R0FBRyxDQUFDLENBQUM7UUFDM0IsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUM1QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM3QyxJQUFJLFlBQVksR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNqRSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFdkQsWUFBWSxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNqRSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFdkQsWUFBWSxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNqRSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFdkQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDO2dCQUMvQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUM7b0JBQ2hFLElBQUksZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztvQkFDekMsSUFBSSxnQkFBZ0IsSUFBSSxDQUFDO3dCQUFFLFNBQVM7b0JBQ3BDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7b0JBQzNELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBRXZDLElBQUksZUFBZSxHQUFHLGdCQUFnQixJQUFJLENBQUMsQ0FBQztvQkFDNUMsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztvQkFDdEMsSUFBSSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsZUFBZSxHQUFHLFVBQVUsQ0FBQyxDQUFDO29CQUNqRyxLQUFLLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7d0JBQ2xFLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFDekQsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUM1QixvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUNoQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzt3QkFDdEMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQ3RDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUN0QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzt3QkFDdEMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUNoQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDbEIsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO3dCQUN2RCxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7d0JBQ3ZELElBQUksUUFBUSxFQUFFLENBQUM7NEJBQ2Qsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7NEJBQ3JDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDOzRCQUNyQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQzs0QkFDdEMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQ3ZDLENBQUM7b0JBQ0YsQ0FBQztvQkFFRCxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO29CQUM1QixJQUFJLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNoRyxlQUFlLEVBQUUsQ0FBQztvQkFDbEIsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLGVBQWUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ3JELHFCQUFxQixDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQzt3QkFDakMscUJBQXFCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO3dCQUM1QyxxQkFBcUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUNqRCxDQUFDO29CQUNELEtBQUssSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDO2dCQUU5QixDQUFDO3FCQUFNLENBQUM7b0JBQ1AsSUFBSSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO29CQUNuRixvQkFBb0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQzdCLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ2pDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUN0QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDdEMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQ3RDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUN0QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ2Ysb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDakMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFFakMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDakMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDakMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQ3ZDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUN2QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzt3QkFDdkMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQ3ZDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2xDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBRWxDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2xDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2xDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUN2QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzt3QkFDdkMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQ3ZDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUN2QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO3dCQUNsQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUNuQyxDQUFDO3lCQUFNLENBQUM7d0JBQ1Asb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDakMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDakMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQ3JDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO3dCQUNyQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDdEMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBRXRDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2xDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2xDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUN2QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzt3QkFDdkMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQ3ZDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUN2QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO3dCQUNsQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO3dCQUNsQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDdEMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQ3RDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO3dCQUN0QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFFdEMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDbEMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDbEMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQ3ZDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUN2QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzt3QkFDdkMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQ3ZDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2xDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2xDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO3dCQUN0QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDdEMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQ3RDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUN2QyxDQUFDO29CQUVELENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7b0JBQzVCLElBQUkscUJBQXFCLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3hFLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztvQkFDakMscUJBQXFCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUMzQyxxQkFBcUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQzNDLEtBQUssSUFBSSxDQUFDLENBQUM7b0JBQ1gsTUFBTTtnQkFDUCxDQUFDO1lBQ0YsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBRU0scUJBQXFCLENBQUUsUUFBeUIsRUFBRSxTQUEwQixFQUFFLGVBQXVCLEVBQUUsR0FBb0I7UUFDakksSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN2RyxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUM3QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWlCLENBQUM7UUFDdEMsSUFBSSxhQUFhLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUVwQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUMzQixVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUN0QixnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzdDLElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsR0FBRyxRQUFRLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztZQUV2RCxZQUFZLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsR0FBRyxRQUFRLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztZQUV2RCxZQUFZLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsR0FBRyxRQUFRLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztZQUV2RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUM7Z0JBQy9CLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDaEUsSUFBSSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO29CQUN6QyxJQUFJLGdCQUFnQixJQUFJLENBQUM7d0JBQUUsU0FBUztvQkFDcEMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztvQkFDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFFdkMsSUFBSSxlQUFlLEdBQUcsZ0JBQWdCLElBQUksQ0FBQyxDQUFDO29CQUM1QyxJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO29CQUN0QyxJQUFJLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLENBQUMsR0FBRyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3hGLElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQzlFLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDekQsSUFBSSxDQUFDLEdBQUcsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxlQUFlLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUN6RCxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQzVCLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQ2hDLElBQUksRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUNoQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQ2xCLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDOUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDbkQsQ0FBQztvQkFFRCxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO29CQUM1QixJQUFJLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNoRyxlQUFlLEVBQUUsQ0FBQztvQkFDbEIsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLGVBQWUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ3JELHFCQUFxQixDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQzt3QkFDakMscUJBQXFCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO3dCQUM1QyxxQkFBcUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUNqRCxDQUFDO29CQUNELEtBQUssSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDO2dCQUU5QixDQUFDO3FCQUFNLENBQUM7b0JBQ1AsSUFBSSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUMxRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQzdCLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ2pDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ2pDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ2pDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ2pDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBRWpDLElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ2hFLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ3hCLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUM1QixlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDNUIsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQzVCLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUM1QixlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFFNUIsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztvQkFDNUIsSUFBSSxxQkFBcUIsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDeEUscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO29CQUNqQyxxQkFBcUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQzNDLHFCQUFxQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDM0MsS0FBSyxJQUFJLENBQUMsQ0FBQztvQkFDWCxNQUFNO2dCQUNQLENBQUM7WUFDRixDQUFDO1FBQ0YsQ0FBQztJQUNGLENBQUM7SUFFRDtxSEFDaUg7SUFDakgsSUFBSSxDQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLFlBQTJCLEVBQUUsTUFBcUI7UUFDL0gsSUFBSSxjQUFjLEdBQUcsTUFBTSxDQUFDO1FBQzVCLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztRQUVwQix5QkFBeUI7UUFDekIsSUFBSSxLQUFvQixDQUFDO1FBQ3pCLElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEMsS0FBSyxHQUFHLE1BQU0sQ0FBQztZQUNmLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3ZCLENBQUM7O1lBQ0EsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFdEIsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDakIsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNmLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDZixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2YsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNmLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDZixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2YsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNmLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDZixNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUVsQixJQUFJLG9CQUFvQixHQUFHLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELElBQUksZ0JBQWdCLEdBQUcsWUFBWSxDQUFDO1FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLElBQUksRUFBRSxHQUFHLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFL0UsSUFBSSxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNoQyxJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDMUIsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztnQkFDbEQsSUFBSSxNQUFNLEdBQUcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sR0FBRyxhQUFhLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUMvRCxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNSLElBQUksT0FBTyxHQUFHLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLEdBQUcsYUFBYSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDakUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQztnQkFDekQsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQztnQkFDdkQsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ1osSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLHVCQUF1Qjt3QkFDaEMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDckIsU0FBUztvQkFDVixDQUFDO29CQUNELHdCQUF3QjtvQkFDeEIsSUFBSSxFQUFFLEdBQUcsT0FBTyxHQUFHLE1BQU0sRUFBRSxFQUFFLEdBQUcsT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBQy9FLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUM5QixDQUFDO3lCQUFNLENBQUM7d0JBQ1AsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDckIsU0FBUztvQkFDVixDQUFDO2dCQUNGLENBQUM7cUJBQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QjtvQkFDeEMsSUFBSSxFQUFFLEdBQUcsT0FBTyxHQUFHLE1BQU0sRUFBRSxFQUFFLEdBQUcsT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBQy9FLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN0QixDQUFDO3lCQUFNLENBQUM7d0JBQ1AsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDckIsU0FBUztvQkFDVixDQUFDO2dCQUNGLENBQUM7Z0JBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNoQixDQUFDO1lBRUQsSUFBSSxXQUFXLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMscUJBQXFCO2dCQUN4RCxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDMUIsT0FBTyxJQUFJLENBQUM7WUFDYixDQUFDO1lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXZCLElBQUksQ0FBQyxJQUFJLG9CQUFvQjtnQkFBRSxNQUFNO1lBQ3JDLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQztZQUNsQixNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ2YsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDbEIsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLGNBQWMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUM5QixjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQ2hELGNBQWMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsQ0FBQzs7WUFDQSxjQUFjLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRW5ELE9BQU8sT0FBTyxDQUFDO0lBQ2hCLENBQUM7SUFFTSxNQUFNLENBQUMsYUFBYSxDQUFFLE9BQXdCO1FBQ3BELElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLGNBQWMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBRXBDLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDdkksS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGNBQWMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdkQsR0FBRyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN0QixHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN0QixHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN0QixJQUFJLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQy9CLENBQUM7UUFDRCxJQUFJLElBQUksR0FBRyxDQUFDO1lBQUUsT0FBTztRQUVyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsY0FBYyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsY0FBYyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwRixJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekMsSUFBSSxLQUFLLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUN0QixRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN0QyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDRixDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBTcGluZSBSdW50aW1lcyBMaWNlbnNlIEFncmVlbWVudFxuICogTGFzdCB1cGRhdGVkIEp1bHkgMjgsIDIwMjMuIFJlcGxhY2VzIGFsbCBwcmlvciB2ZXJzaW9ucy5cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAyMywgRXNvdGVyaWMgU29mdHdhcmUgTExDXG4gKlxuICogSW50ZWdyYXRpb24gb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmUgb3Igb3RoZXJ3aXNlIGNyZWF0aW5nXG4gKiBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpcyBwZXJtaXR0ZWQgdW5kZXIgdGhlIHRlcm1zIGFuZFxuICogY29uZGl0aW9ucyBvZiBTZWN0aW9uIDIgb2YgdGhlIFNwaW5lIEVkaXRvciBMaWNlbnNlIEFncmVlbWVudDpcbiAqIGh0dHA6Ly9lc290ZXJpY3NvZnR3YXJlLmNvbS9zcGluZS1lZGl0b3ItbGljZW5zZVxuICpcbiAqIE90aGVyd2lzZSwgaXQgaXMgcGVybWl0dGVkIHRvIGludGVncmF0ZSB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZSBvclxuICogb3RoZXJ3aXNlIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyAoY29sbGVjdGl2ZWx5LFxuICogXCJQcm9kdWN0c1wiKSwgcHJvdmlkZWQgdGhhdCBlYWNoIHVzZXIgb2YgdGhlIFByb2R1Y3RzIG11c3Qgb2J0YWluIHRoZWlyIG93blxuICogU3BpbmUgRWRpdG9yIGxpY2Vuc2UgYW5kIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9kdWN0cyBpbiBhbnkgZm9ybSBtdXN0XG4gKiBpbmNsdWRlIHRoaXMgbGljZW5zZSBhbmQgY29weXJpZ2h0IG5vdGljZS5cbiAqXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMgQVJFIFBST1ZJREVEIEJZIEVTT1RFUklDIFNPRlRXQVJFIExMQyBcIkFTIElTXCIgQU5EIEFOWVxuICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRFxuICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRVxuICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgRVNPVEVSSUMgU09GVFdBUkUgTExDIEJFIExJQUJMRSBGT1IgQU5ZXG4gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFU1xuICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTLFxuICogQlVTSU5FU1MgSU5URVJSVVBUSU9OLCBPUiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUykgSE9XRVZFUiBDQVVTRUQgQU5EXG4gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVFxuICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRIRVxuICogU1BJTkUgUlVOVElNRVMsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmltcG9ydCB7IENsaXBwaW5nQXR0YWNobWVudCB9IGZyb20gXCIuL2F0dGFjaG1lbnRzL0NsaXBwaW5nQXR0YWNobWVudC5qc1wiO1xuaW1wb3J0IHsgU2xvdCB9IGZyb20gXCIuL1Nsb3QuanNcIjtcbmltcG9ydCB7IFRyaWFuZ3VsYXRvciB9IGZyb20gXCIuL1RyaWFuZ3VsYXRvci5qc1wiO1xuaW1wb3J0IHsgVXRpbHMsIENvbG9yLCBOdW1iZXJBcnJheUxpa2UgfSBmcm9tIFwiLi9VdGlscy5qc1wiO1xuXG5leHBvcnQgY2xhc3MgU2tlbGV0b25DbGlwcGluZyB7XG5cdHByaXZhdGUgdHJpYW5ndWxhdG9yID0gbmV3IFRyaWFuZ3VsYXRvcigpO1xuXHRwcml2YXRlIGNsaXBwaW5nUG9seWdvbiA9IG5ldyBBcnJheTxudW1iZXI+KCk7XG5cdHByaXZhdGUgY2xpcE91dHB1dCA9IG5ldyBBcnJheTxudW1iZXI+KCk7XG5cdGNsaXBwZWRWZXJ0aWNlcyA9IG5ldyBBcnJheTxudW1iZXI+KCk7XG5cdGNsaXBwZWRVVnMgPSBuZXcgQXJyYXk8bnVtYmVyPigpO1xuXHRjbGlwcGVkVHJpYW5nbGVzID0gbmV3IEFycmF5PG51bWJlcj4oKTtcblx0cHJpdmF0ZSBzY3JhdGNoID0gbmV3IEFycmF5PG51bWJlcj4oKTtcblxuXHRwcml2YXRlIGNsaXBBdHRhY2htZW50OiBDbGlwcGluZ0F0dGFjaG1lbnQgfCBudWxsID0gbnVsbDtcblx0cHJpdmF0ZSBjbGlwcGluZ1BvbHlnb25zOiBBcnJheTxBcnJheTxudW1iZXI+PiB8IG51bGwgPSBudWxsO1xuXG5cdGNsaXBTdGFydCAoc2xvdDogU2xvdCwgY2xpcDogQ2xpcHBpbmdBdHRhY2htZW50KTogbnVtYmVyIHtcblx0XHRpZiAodGhpcy5jbGlwQXR0YWNobWVudCkgcmV0dXJuIDA7XG5cdFx0dGhpcy5jbGlwQXR0YWNobWVudCA9IGNsaXA7XG5cblx0XHRsZXQgbiA9IGNsaXAud29ybGRWZXJ0aWNlc0xlbmd0aDtcblx0XHRsZXQgdmVydGljZXMgPSBVdGlscy5zZXRBcnJheVNpemUodGhpcy5jbGlwcGluZ1BvbHlnb24sIG4pO1xuXHRcdGNsaXAuY29tcHV0ZVdvcmxkVmVydGljZXMoc2xvdCwgMCwgbiwgdmVydGljZXMsIDAsIDIpO1xuXHRcdGxldCBjbGlwcGluZ1BvbHlnb24gPSB0aGlzLmNsaXBwaW5nUG9seWdvbjtcblx0XHRTa2VsZXRvbkNsaXBwaW5nLm1ha2VDbG9ja3dpc2UoY2xpcHBpbmdQb2x5Z29uKTtcblx0XHRsZXQgY2xpcHBpbmdQb2x5Z29ucyA9IHRoaXMuY2xpcHBpbmdQb2x5Z29ucyA9IHRoaXMudHJpYW5ndWxhdG9yLmRlY29tcG9zZShjbGlwcGluZ1BvbHlnb24sIHRoaXMudHJpYW5ndWxhdG9yLnRyaWFuZ3VsYXRlKGNsaXBwaW5nUG9seWdvbikpO1xuXHRcdGZvciAobGV0IGkgPSAwLCBuID0gY2xpcHBpbmdQb2x5Z29ucy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcblx0XHRcdGxldCBwb2x5Z29uID0gY2xpcHBpbmdQb2x5Z29uc1tpXTtcblx0XHRcdFNrZWxldG9uQ2xpcHBpbmcubWFrZUNsb2Nrd2lzZShwb2x5Z29uKTtcblx0XHRcdHBvbHlnb24ucHVzaChwb2x5Z29uWzBdKTtcblx0XHRcdHBvbHlnb24ucHVzaChwb2x5Z29uWzFdKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gY2xpcHBpbmdQb2x5Z29ucy5sZW5ndGg7XG5cdH1cblxuXHRjbGlwRW5kV2l0aFNsb3QgKHNsb3Q6IFNsb3QpIHtcblx0XHRpZiAodGhpcy5jbGlwQXR0YWNobWVudCAmJiB0aGlzLmNsaXBBdHRhY2htZW50LmVuZFNsb3QgPT0gc2xvdC5kYXRhKSB0aGlzLmNsaXBFbmQoKTtcblx0fVxuXG5cdGNsaXBFbmQgKCkge1xuXHRcdGlmICghdGhpcy5jbGlwQXR0YWNobWVudCkgcmV0dXJuO1xuXHRcdHRoaXMuY2xpcEF0dGFjaG1lbnQgPSBudWxsO1xuXHRcdHRoaXMuY2xpcHBpbmdQb2x5Z29ucyA9IG51bGw7XG5cdFx0dGhpcy5jbGlwcGVkVmVydGljZXMubGVuZ3RoID0gMDtcblx0XHR0aGlzLmNsaXBwZWRUcmlhbmdsZXMubGVuZ3RoID0gMDtcblx0XHR0aGlzLmNsaXBwaW5nUG9seWdvbi5sZW5ndGggPSAwO1xuXHR9XG5cblx0aXNDbGlwcGluZyAoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuY2xpcEF0dGFjaG1lbnQgIT0gbnVsbDtcblx0fVxuXG5cdC8qKlxuXHQqIEBkZXByZWNhdGVkIFVzZSBjbGlwVHJpYW5nbGVzIHdpdGhvdXQgdmVydGljZXNMZW5ndGggcGFyYW1ldGVyLiBNYXJrIGZvciByZW1vdmFsIGluIDQuMy5cblx0Ki9cblx0Y2xpcFRyaWFuZ2xlcyAodmVydGljZXM6IE51bWJlckFycmF5TGlrZSwgdmVydGljZXNMZW5ndGg6IG51bWJlciwgdHJpYW5nbGVzOiBOdW1iZXJBcnJheUxpa2UsIHRyaWFuZ2xlc0xlbmd0aDogbnVtYmVyKTogdm9pZDtcblxuXHQvKipcblx0ICogQGRlcHJlY2F0ZWQgVXNlIGNsaXBUcmlhbmdsZXMgd2l0aG91dCB2ZXJ0aWNlc0xlbmd0aCBwYXJhbWV0ZXIuIE1hcmsgZm9yIHJlbW92YWwgaW4gNC4zLlxuXHQgKi9cblx0Y2xpcFRyaWFuZ2xlcyAodmVydGljZXM6IE51bWJlckFycmF5TGlrZSwgdmVydGljZXNMZW5ndGg6IG51bWJlciwgdHJpYW5nbGVzOiBOdW1iZXJBcnJheUxpa2UsIHRyaWFuZ2xlc0xlbmd0aDogbnVtYmVyLCB1dnM6IE51bWJlckFycmF5TGlrZSwgbGlnaHQ6IENvbG9yLCBkYXJrOiBDb2xvciwgdHdvQ29sb3I6IGJvb2xlYW4pOiB2b2lkO1xuXG5cdGNsaXBUcmlhbmdsZXMgKHZlcnRpY2VzOiBOdW1iZXJBcnJheUxpa2UsIHRyaWFuZ2xlczogTnVtYmVyQXJyYXlMaWtlLCB0cmlhbmdsZXNMZW5ndGg6IG51bWJlcik6IHZvaWQ7XG5cdGNsaXBUcmlhbmdsZXMgKHZlcnRpY2VzOiBOdW1iZXJBcnJheUxpa2UsIHRyaWFuZ2xlczogTnVtYmVyQXJyYXlMaWtlLCB0cmlhbmdsZXNMZW5ndGg6IG51bWJlciwgdXZzOiBOdW1iZXJBcnJheUxpa2UsIGxpZ2h0OiBDb2xvciwgZGFyazogQ29sb3IsIHR3b0NvbG9yOiBib29sZWFuKTogdm9pZDtcblx0Y2xpcFRyaWFuZ2xlcyAoXG5cdFx0dmVydGljZXM6IE51bWJlckFycmF5TGlrZSxcblx0XHR2ZXJ0aWNlc0xlbmd0aE9yVHJpYW5nbGVzOiBudW1iZXIgfCBOdW1iZXJBcnJheUxpa2UsXG5cdFx0dHJpYW5nbGVzT3JUcmlhbmdsZXNMZW5ndGg6IE51bWJlckFycmF5TGlrZSB8IG51bWJlcixcblx0XHR0cmlhbmdsZXNMZW5ndGhPclV2cz86IG51bWJlciB8IE51bWJlckFycmF5TGlrZSxcblx0XHR1dnNPckxpZ2h0PzogTnVtYmVyQXJyYXlMaWtlIHwgQ29sb3IsXG5cdFx0bGlnaHRPckRhcms/OiBDb2xvcixcblx0XHRkYXJrT3JUd29Db2xvcj86IENvbG9yIHwgYm9vbGVhbixcblx0XHR0d29Db2xvclBhcmFtPzogYm9vbGVhblxuXHQpOiB2b2lkIHtcblx0XHQvLyBEZXRlcm1pbmUgd2hpY2ggb3ZlcmxvYWQgaXMgYmVpbmcgdXNlZFxuXHRcdGxldCB0cmlhbmdsZXM6IE51bWJlckFycmF5TGlrZTtcblx0XHRsZXQgdHJpYW5nbGVzTGVuZ3RoOiBudW1iZXI7XG5cdFx0bGV0IHV2czogTnVtYmVyQXJyYXlMaWtlIHwgdW5kZWZpbmVkO1xuXHRcdGxldCBsaWdodDogQ29sb3IgfCB1bmRlZmluZWQ7XG5cdFx0bGV0IGRhcms6IENvbG9yIHwgdW5kZWZpbmVkO1xuXHRcdGxldCB0d29Db2xvcjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuXHRcdGlmICh0eXBlb2YgdmVydGljZXNMZW5ndGhPclRyaWFuZ2xlcyA9PT0gJ251bWJlcicpIHtcblx0XHRcdHRyaWFuZ2xlcyA9IHRyaWFuZ2xlc09yVHJpYW5nbGVzTGVuZ3RoIGFzIE51bWJlckFycmF5TGlrZTtcblx0XHRcdHRyaWFuZ2xlc0xlbmd0aCA9IHRyaWFuZ2xlc0xlbmd0aE9yVXZzIGFzIG51bWJlcjtcblx0XHRcdHV2cyA9IHV2c09yTGlnaHQgYXMgTnVtYmVyQXJyYXlMaWtlO1xuXHRcdFx0bGlnaHQgPSBsaWdodE9yRGFyayBhcyBDb2xvciB8IHVuZGVmaW5lZDtcblx0XHRcdGRhcmsgPSBkYXJrT3JUd29Db2xvciBhcyBDb2xvciB8IHVuZGVmaW5lZDtcblx0XHRcdHR3b0NvbG9yID0gdHdvQ29sb3JQYXJhbTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dHJpYW5nbGVzID0gdmVydGljZXNMZW5ndGhPclRyaWFuZ2xlcztcblx0XHRcdHRyaWFuZ2xlc0xlbmd0aCA9IHRyaWFuZ2xlc09yVHJpYW5nbGVzTGVuZ3RoIGFzIG51bWJlcjtcblx0XHRcdHV2cyA9IHRyaWFuZ2xlc0xlbmd0aE9yVXZzIGFzIE51bWJlckFycmF5TGlrZTtcblx0XHRcdGxpZ2h0ID0gdXZzT3JMaWdodCBhcyBDb2xvciB8IHVuZGVmaW5lZDtcblx0XHRcdGRhcmsgPSBsaWdodE9yRGFyayBhcyBDb2xvciB8IHVuZGVmaW5lZDtcblx0XHRcdHR3b0NvbG9yID0gZGFya09yVHdvQ29sb3IgYXMgYm9vbGVhbjtcblx0XHR9XG5cblx0XHRpZiAodXZzICYmIGxpZ2h0ICYmIGRhcmsgJiYgdHlwZW9mIHR3b0NvbG9yID09PSAnYm9vbGVhbicpXG5cdFx0XHR0aGlzLmNsaXBUcmlhbmdsZXNSZW5kZXIodmVydGljZXMsIHRyaWFuZ2xlcywgdHJpYW5nbGVzTGVuZ3RoLCB1dnMsIGxpZ2h0LCBkYXJrLCB0d29Db2xvcik7XG5cdFx0ZWxzZVxuXHRcdFx0dGhpcy5jbGlwVHJpYW5nbGVzTm9SZW5kZXIodmVydGljZXMsIHRyaWFuZ2xlcywgdHJpYW5nbGVzTGVuZ3RoKTtcblx0fVxuXG5cdHByaXZhdGUgY2xpcFRyaWFuZ2xlc05vUmVuZGVyICh2ZXJ0aWNlczogTnVtYmVyQXJyYXlMaWtlLCB0cmlhbmdsZXM6IE51bWJlckFycmF5TGlrZSwgdHJpYW5nbGVzTGVuZ3RoOiBudW1iZXIpIHtcblxuXHRcdGxldCBjbGlwT3V0cHV0ID0gdGhpcy5jbGlwT3V0cHV0LCBjbGlwcGVkVmVydGljZXMgPSB0aGlzLmNsaXBwZWRWZXJ0aWNlcztcblx0XHRsZXQgY2xpcHBlZFRyaWFuZ2xlcyA9IHRoaXMuY2xpcHBlZFRyaWFuZ2xlcztcblx0XHRsZXQgcG9seWdvbnMgPSB0aGlzLmNsaXBwaW5nUG9seWdvbnMhO1xuXHRcdGxldCBwb2x5Z29uc0NvdW50ID0gcG9seWdvbnMubGVuZ3RoO1xuXG5cdFx0bGV0IGluZGV4ID0gMDtcblx0XHRjbGlwcGVkVmVydGljZXMubGVuZ3RoID0gMDtcblx0XHRjbGlwcGVkVHJpYW5nbGVzLmxlbmd0aCA9IDA7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0cmlhbmdsZXNMZW5ndGg7IGkgKz0gMykge1xuXHRcdFx0bGV0IHZlcnRleE9mZnNldCA9IHRyaWFuZ2xlc1tpXSA8PCAxO1xuXHRcdFx0bGV0IHgxID0gdmVydGljZXNbdmVydGV4T2Zmc2V0XSwgeTEgPSB2ZXJ0aWNlc1t2ZXJ0ZXhPZmZzZXQgKyAxXTtcblxuXHRcdFx0dmVydGV4T2Zmc2V0ID0gdHJpYW5nbGVzW2kgKyAxXSA8PCAxO1xuXHRcdFx0bGV0IHgyID0gdmVydGljZXNbdmVydGV4T2Zmc2V0XSwgeTIgPSB2ZXJ0aWNlc1t2ZXJ0ZXhPZmZzZXQgKyAxXTtcblxuXHRcdFx0dmVydGV4T2Zmc2V0ID0gdHJpYW5nbGVzW2kgKyAyXSA8PCAxO1xuXHRcdFx0bGV0IHgzID0gdmVydGljZXNbdmVydGV4T2Zmc2V0XSwgeTMgPSB2ZXJ0aWNlc1t2ZXJ0ZXhPZmZzZXQgKyAxXTtcblxuXHRcdFx0Zm9yIChsZXQgcCA9IDA7IHAgPCBwb2x5Z29uc0NvdW50OyBwKyspIHtcblx0XHRcdFx0bGV0IHMgPSBjbGlwcGVkVmVydGljZXMubGVuZ3RoO1xuXHRcdFx0XHRpZiAodGhpcy5jbGlwKHgxLCB5MSwgeDIsIHkyLCB4MywgeTMsIHBvbHlnb25zW3BdLCBjbGlwT3V0cHV0KSkge1xuXHRcdFx0XHRcdGxldCBjbGlwT3V0cHV0TGVuZ3RoID0gY2xpcE91dHB1dC5sZW5ndGg7XG5cdFx0XHRcdFx0aWYgKGNsaXBPdXRwdXRMZW5ndGggPT0gMCkgY29udGludWU7XG5cblx0XHRcdFx0XHRsZXQgY2xpcE91dHB1dENvdW50ID0gY2xpcE91dHB1dExlbmd0aCA+PiAxO1xuXHRcdFx0XHRcdGxldCBjbGlwT3V0cHV0SXRlbXMgPSB0aGlzLmNsaXBPdXRwdXQ7XG5cdFx0XHRcdFx0bGV0IGNsaXBwZWRWZXJ0aWNlc0l0ZW1zID0gVXRpbHMuc2V0QXJyYXlTaXplKGNsaXBwZWRWZXJ0aWNlcywgcyArIGNsaXBPdXRwdXRDb3VudCAqIDIpO1xuXHRcdFx0XHRcdGZvciAobGV0IGlpID0gMDsgaWkgPCBjbGlwT3V0cHV0TGVuZ3RoOyBpaSArPSAyLCBzICs9IDIpIHtcblx0XHRcdFx0XHRcdGxldCB4ID0gY2xpcE91dHB1dEl0ZW1zW2lpXSwgeSA9IGNsaXBPdXRwdXRJdGVtc1tpaSArIDFdO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbc10gPSB4O1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDFdID0geTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRzID0gY2xpcHBlZFRyaWFuZ2xlcy5sZW5ndGg7XG5cdFx0XHRcdFx0bGV0IGNsaXBwZWRUcmlhbmdsZXNJdGVtcyA9IFV0aWxzLnNldEFycmF5U2l6ZShjbGlwcGVkVHJpYW5nbGVzLCBzICsgMyAqIChjbGlwT3V0cHV0Q291bnQgLSAyKSk7XG5cdFx0XHRcdFx0Y2xpcE91dHB1dENvdW50LS07XG5cdFx0XHRcdFx0Zm9yIChsZXQgaWkgPSAxOyBpaSA8IGNsaXBPdXRwdXRDb3VudDsgaWkrKywgcyArPSAzKSB7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVHJpYW5nbGVzSXRlbXNbc10gPSBpbmRleDtcblx0XHRcdFx0XHRcdGNsaXBwZWRUcmlhbmdsZXNJdGVtc1tzICsgMV0gPSAoaW5kZXggKyBpaSk7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVHJpYW5nbGVzSXRlbXNbcyArIDJdID0gKGluZGV4ICsgaWkgKyAxKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aW5kZXggKz0gY2xpcE91dHB1dENvdW50ICsgMTtcblxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGxldCBjbGlwcGVkVmVydGljZXNJdGVtcyA9IFV0aWxzLnNldEFycmF5U2l6ZShjbGlwcGVkVmVydGljZXMsIHMgKyAzICogMik7XG5cdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbc10gPSB4MTtcblx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMV0gPSB5MTtcblxuXHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyXSA9IHgyO1xuXHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAzXSA9IHkyO1xuXG5cdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDRdID0geDM7XG5cdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDVdID0geTM7XG5cblx0XHRcdFx0XHRzID0gY2xpcHBlZFRyaWFuZ2xlcy5sZW5ndGg7XG5cdFx0XHRcdFx0bGV0IGNsaXBwZWRUcmlhbmdsZXNJdGVtcyA9IFV0aWxzLnNldEFycmF5U2l6ZShjbGlwcGVkVHJpYW5nbGVzLCBzICsgMyk7XG5cdFx0XHRcdFx0Y2xpcHBlZFRyaWFuZ2xlc0l0ZW1zW3NdID0gaW5kZXg7XG5cdFx0XHRcdFx0Y2xpcHBlZFRyaWFuZ2xlc0l0ZW1zW3MgKyAxXSA9IChpbmRleCArIDEpO1xuXHRcdFx0XHRcdGNsaXBwZWRUcmlhbmdsZXNJdGVtc1tzICsgMl0gPSAoaW5kZXggKyAyKTtcblx0XHRcdFx0XHRpbmRleCArPSAzO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBjbGlwVHJpYW5nbGVzUmVuZGVyICh2ZXJ0aWNlczogTnVtYmVyQXJyYXlMaWtlLCB0cmlhbmdsZXM6IE51bWJlckFycmF5TGlrZSwgdHJpYW5nbGVzTGVuZ3RoOiBudW1iZXIsIHV2czogTnVtYmVyQXJyYXlMaWtlLFxuXHRcdGxpZ2h0OiBDb2xvciwgZGFyazogQ29sb3IsIHR3b0NvbG9yOiBib29sZWFuKSB7XG5cblx0XHRsZXQgY2xpcE91dHB1dCA9IHRoaXMuY2xpcE91dHB1dCwgY2xpcHBlZFZlcnRpY2VzID0gdGhpcy5jbGlwcGVkVmVydGljZXM7XG5cdFx0bGV0IGNsaXBwZWRUcmlhbmdsZXMgPSB0aGlzLmNsaXBwZWRUcmlhbmdsZXM7XG5cdFx0bGV0IHBvbHlnb25zID0gdGhpcy5jbGlwcGluZ1BvbHlnb25zITtcblx0XHRsZXQgcG9seWdvbnNDb3VudCA9IHBvbHlnb25zLmxlbmd0aDtcblx0XHRsZXQgdmVydGV4U2l6ZSA9IHR3b0NvbG9yID8gMTIgOiA4O1xuXG5cdFx0bGV0IGluZGV4ID0gMDtcblx0XHRjbGlwcGVkVmVydGljZXMubGVuZ3RoID0gMDtcblx0XHRjbGlwcGVkVHJpYW5nbGVzLmxlbmd0aCA9IDA7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0cmlhbmdsZXNMZW5ndGg7IGkgKz0gMykge1xuXHRcdFx0bGV0IHZlcnRleE9mZnNldCA9IHRyaWFuZ2xlc1tpXSA8PCAxO1xuXHRcdFx0bGV0IHgxID0gdmVydGljZXNbdmVydGV4T2Zmc2V0XSwgeTEgPSB2ZXJ0aWNlc1t2ZXJ0ZXhPZmZzZXQgKyAxXTtcblx0XHRcdGxldCB1MSA9IHV2c1t2ZXJ0ZXhPZmZzZXRdLCB2MSA9IHV2c1t2ZXJ0ZXhPZmZzZXQgKyAxXTtcblxuXHRcdFx0dmVydGV4T2Zmc2V0ID0gdHJpYW5nbGVzW2kgKyAxXSA8PCAxO1xuXHRcdFx0bGV0IHgyID0gdmVydGljZXNbdmVydGV4T2Zmc2V0XSwgeTIgPSB2ZXJ0aWNlc1t2ZXJ0ZXhPZmZzZXQgKyAxXTtcblx0XHRcdGxldCB1MiA9IHV2c1t2ZXJ0ZXhPZmZzZXRdLCB2MiA9IHV2c1t2ZXJ0ZXhPZmZzZXQgKyAxXTtcblxuXHRcdFx0dmVydGV4T2Zmc2V0ID0gdHJpYW5nbGVzW2kgKyAyXSA8PCAxO1xuXHRcdFx0bGV0IHgzID0gdmVydGljZXNbdmVydGV4T2Zmc2V0XSwgeTMgPSB2ZXJ0aWNlc1t2ZXJ0ZXhPZmZzZXQgKyAxXTtcblx0XHRcdGxldCB1MyA9IHV2c1t2ZXJ0ZXhPZmZzZXRdLCB2MyA9IHV2c1t2ZXJ0ZXhPZmZzZXQgKyAxXTtcblxuXHRcdFx0Zm9yIChsZXQgcCA9IDA7IHAgPCBwb2x5Z29uc0NvdW50OyBwKyspIHtcblx0XHRcdFx0bGV0IHMgPSBjbGlwcGVkVmVydGljZXMubGVuZ3RoO1xuXHRcdFx0XHRpZiAodGhpcy5jbGlwKHgxLCB5MSwgeDIsIHkyLCB4MywgeTMsIHBvbHlnb25zW3BdLCBjbGlwT3V0cHV0KSkge1xuXHRcdFx0XHRcdGxldCBjbGlwT3V0cHV0TGVuZ3RoID0gY2xpcE91dHB1dC5sZW5ndGg7XG5cdFx0XHRcdFx0aWYgKGNsaXBPdXRwdXRMZW5ndGggPT0gMCkgY29udGludWU7XG5cdFx0XHRcdFx0bGV0IGQwID0geTIgLSB5MywgZDEgPSB4MyAtIHgyLCBkMiA9IHgxIC0geDMsIGQ0ID0geTMgLSB5MTtcblx0XHRcdFx0XHRsZXQgZCA9IDEgLyAoZDAgKiBkMiArIGQxICogKHkxIC0geTMpKTtcblxuXHRcdFx0XHRcdGxldCBjbGlwT3V0cHV0Q291bnQgPSBjbGlwT3V0cHV0TGVuZ3RoID4+IDE7XG5cdFx0XHRcdFx0bGV0IGNsaXBPdXRwdXRJdGVtcyA9IHRoaXMuY2xpcE91dHB1dDtcblx0XHRcdFx0XHRsZXQgY2xpcHBlZFZlcnRpY2VzSXRlbXMgPSBVdGlscy5zZXRBcnJheVNpemUoY2xpcHBlZFZlcnRpY2VzLCBzICsgY2xpcE91dHB1dENvdW50ICogdmVydGV4U2l6ZSk7XG5cdFx0XHRcdFx0Zm9yIChsZXQgaWkgPSAwOyBpaSA8IGNsaXBPdXRwdXRMZW5ndGg7IGlpICs9IDIsIHMgKz0gdmVydGV4U2l6ZSkge1xuXHRcdFx0XHRcdFx0bGV0IHggPSBjbGlwT3V0cHV0SXRlbXNbaWldLCB5ID0gY2xpcE91dHB1dEl0ZW1zW2lpICsgMV07XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzXSA9IHg7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMV0gPSB5O1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDJdID0gbGlnaHQucjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAzXSA9IGxpZ2h0Lmc7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgNF0gPSBsaWdodC5iO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDVdID0gbGlnaHQuYTtcblx0XHRcdFx0XHRcdGxldCBjMCA9IHggLSB4MywgYzEgPSB5IC0geTM7XG5cdFx0XHRcdFx0XHRsZXQgYSA9IChkMCAqIGMwICsgZDEgKiBjMSkgKiBkO1xuXHRcdFx0XHRcdFx0bGV0IGIgPSAoZDQgKiBjMCArIGQyICogYzEpICogZDtcblx0XHRcdFx0XHRcdGxldCBjID0gMSAtIGEgLSBiO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDZdID0gdTEgKiBhICsgdTIgKiBiICsgdTMgKiBjO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDddID0gdjEgKiBhICsgdjIgKiBiICsgdjMgKiBjO1xuXHRcdFx0XHRcdFx0aWYgKHR3b0NvbG9yKSB7XG5cdFx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyA4XSA9IGRhcmsucjtcblx0XHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDldID0gZGFyay5nO1xuXHRcdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTBdID0gZGFyay5iO1xuXHRcdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTFdID0gZGFyay5hO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHMgPSBjbGlwcGVkVHJpYW5nbGVzLmxlbmd0aDtcblx0XHRcdFx0XHRsZXQgY2xpcHBlZFRyaWFuZ2xlc0l0ZW1zID0gVXRpbHMuc2V0QXJyYXlTaXplKGNsaXBwZWRUcmlhbmdsZXMsIHMgKyAzICogKGNsaXBPdXRwdXRDb3VudCAtIDIpKTtcblx0XHRcdFx0XHRjbGlwT3V0cHV0Q291bnQtLTtcblx0XHRcdFx0XHRmb3IgKGxldCBpaSA9IDE7IGlpIDwgY2xpcE91dHB1dENvdW50OyBpaSsrLCBzICs9IDMpIHtcblx0XHRcdFx0XHRcdGNsaXBwZWRUcmlhbmdsZXNJdGVtc1tzXSA9IGluZGV4O1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFRyaWFuZ2xlc0l0ZW1zW3MgKyAxXSA9IChpbmRleCArIGlpKTtcblx0XHRcdFx0XHRcdGNsaXBwZWRUcmlhbmdsZXNJdGVtc1tzICsgMl0gPSAoaW5kZXggKyBpaSArIDEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpbmRleCArPSBjbGlwT3V0cHV0Q291bnQgKyAxO1xuXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0bGV0IGNsaXBwZWRWZXJ0aWNlc0l0ZW1zID0gVXRpbHMuc2V0QXJyYXlTaXplKGNsaXBwZWRWZXJ0aWNlcywgcyArIDMgKiB2ZXJ0ZXhTaXplKTtcblx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzXSA9IHgxO1xuXHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAxXSA9IHkxO1xuXHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyXSA9IGxpZ2h0LnI7XG5cdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDNdID0gbGlnaHQuZztcblx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgNF0gPSBsaWdodC5iO1xuXHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyA1XSA9IGxpZ2h0LmE7XG5cdFx0XHRcdFx0aWYgKCF0d29Db2xvcikge1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDZdID0gdTE7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgN10gPSB2MTtcblxuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDhdID0geDI7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgOV0gPSB5Mjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAxMF0gPSBsaWdodC5yO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDExXSA9IGxpZ2h0Lmc7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTJdID0gbGlnaHQuYjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAxM10gPSBsaWdodC5hO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDE0XSA9IHUyO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDE1XSA9IHYyO1xuXG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTZdID0geDM7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTddID0geTM7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMThdID0gbGlnaHQucjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAxOV0gPSBsaWdodC5nO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDIwXSA9IGxpZ2h0LmI7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMjFdID0gbGlnaHQuYTtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyMl0gPSB1Mztcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyM10gPSB2Mztcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDZdID0gdTE7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgN10gPSB2MTtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyA4XSA9IGRhcmsucjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyA5XSA9IGRhcmsuZztcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAxMF0gPSBkYXJrLmI7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTFdID0gZGFyay5hO1xuXG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTJdID0geDI7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTNdID0geTI7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTRdID0gbGlnaHQucjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAxNV0gPSBsaWdodC5nO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDE2XSA9IGxpZ2h0LmI7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTddID0gbGlnaHQuYTtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAxOF0gPSB1Mjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAxOV0gPSB2Mjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyMF0gPSBkYXJrLnI7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMjFdID0gZGFyay5nO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDIyXSA9IGRhcmsuYjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyM10gPSBkYXJrLmE7XG5cblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyNF0gPSB4Mztcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyNV0gPSB5Mztcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyNl0gPSBsaWdodC5yO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDI3XSA9IGxpZ2h0Lmc7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMjhdID0gbGlnaHQuYjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyOV0gPSBsaWdodC5hO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDMwXSA9IHUzO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDMxXSA9IHYzO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDMyXSA9IGRhcmsucjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAzM10gPSBkYXJrLmc7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMzRdID0gZGFyay5iO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDM1XSA9IGRhcmsuYTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRzID0gY2xpcHBlZFRyaWFuZ2xlcy5sZW5ndGg7XG5cdFx0XHRcdFx0bGV0IGNsaXBwZWRUcmlhbmdsZXNJdGVtcyA9IFV0aWxzLnNldEFycmF5U2l6ZShjbGlwcGVkVHJpYW5nbGVzLCBzICsgMyk7XG5cdFx0XHRcdFx0Y2xpcHBlZFRyaWFuZ2xlc0l0ZW1zW3NdID0gaW5kZXg7XG5cdFx0XHRcdFx0Y2xpcHBlZFRyaWFuZ2xlc0l0ZW1zW3MgKyAxXSA9IChpbmRleCArIDEpO1xuXHRcdFx0XHRcdGNsaXBwZWRUcmlhbmdsZXNJdGVtc1tzICsgMl0gPSAoaW5kZXggKyAyKTtcblx0XHRcdFx0XHRpbmRleCArPSAzO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGNsaXBUcmlhbmdsZXNVbnBhY2tlZCAodmVydGljZXM6IE51bWJlckFycmF5TGlrZSwgdHJpYW5nbGVzOiBOdW1iZXJBcnJheUxpa2UsIHRyaWFuZ2xlc0xlbmd0aDogbnVtYmVyLCB1dnM6IE51bWJlckFycmF5TGlrZSkge1xuXHRcdGxldCBjbGlwT3V0cHV0ID0gdGhpcy5jbGlwT3V0cHV0LCBjbGlwcGVkVmVydGljZXMgPSB0aGlzLmNsaXBwZWRWZXJ0aWNlcywgY2xpcHBlZFVWcyA9IHRoaXMuY2xpcHBlZFVWcztcblx0XHRsZXQgY2xpcHBlZFRyaWFuZ2xlcyA9IHRoaXMuY2xpcHBlZFRyaWFuZ2xlcztcblx0XHRsZXQgcG9seWdvbnMgPSB0aGlzLmNsaXBwaW5nUG9seWdvbnMhO1xuXHRcdGxldCBwb2x5Z29uc0NvdW50ID0gcG9seWdvbnMubGVuZ3RoO1xuXG5cdFx0bGV0IGluZGV4ID0gMDtcblx0XHRjbGlwcGVkVmVydGljZXMubGVuZ3RoID0gMDtcblx0XHRjbGlwcGVkVVZzLmxlbmd0aCA9IDA7XG5cdFx0Y2xpcHBlZFRyaWFuZ2xlcy5sZW5ndGggPSAwO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdHJpYW5nbGVzTGVuZ3RoOyBpICs9IDMpIHtcblx0XHRcdGxldCB2ZXJ0ZXhPZmZzZXQgPSB0cmlhbmdsZXNbaV0gPDwgMTtcblx0XHRcdGxldCB4MSA9IHZlcnRpY2VzW3ZlcnRleE9mZnNldF0sIHkxID0gdmVydGljZXNbdmVydGV4T2Zmc2V0ICsgMV07XG5cdFx0XHRsZXQgdTEgPSB1dnNbdmVydGV4T2Zmc2V0XSwgdjEgPSB1dnNbdmVydGV4T2Zmc2V0ICsgMV07XG5cblx0XHRcdHZlcnRleE9mZnNldCA9IHRyaWFuZ2xlc1tpICsgMV0gPDwgMTtcblx0XHRcdGxldCB4MiA9IHZlcnRpY2VzW3ZlcnRleE9mZnNldF0sIHkyID0gdmVydGljZXNbdmVydGV4T2Zmc2V0ICsgMV07XG5cdFx0XHRsZXQgdTIgPSB1dnNbdmVydGV4T2Zmc2V0XSwgdjIgPSB1dnNbdmVydGV4T2Zmc2V0ICsgMV07XG5cblx0XHRcdHZlcnRleE9mZnNldCA9IHRyaWFuZ2xlc1tpICsgMl0gPDwgMTtcblx0XHRcdGxldCB4MyA9IHZlcnRpY2VzW3ZlcnRleE9mZnNldF0sIHkzID0gdmVydGljZXNbdmVydGV4T2Zmc2V0ICsgMV07XG5cdFx0XHRsZXQgdTMgPSB1dnNbdmVydGV4T2Zmc2V0XSwgdjMgPSB1dnNbdmVydGV4T2Zmc2V0ICsgMV07XG5cblx0XHRcdGZvciAobGV0IHAgPSAwOyBwIDwgcG9seWdvbnNDb3VudDsgcCsrKSB7XG5cdFx0XHRcdGxldCBzID0gY2xpcHBlZFZlcnRpY2VzLmxlbmd0aDtcblx0XHRcdFx0aWYgKHRoaXMuY2xpcCh4MSwgeTEsIHgyLCB5MiwgeDMsIHkzLCBwb2x5Z29uc1twXSwgY2xpcE91dHB1dCkpIHtcblx0XHRcdFx0XHRsZXQgY2xpcE91dHB1dExlbmd0aCA9IGNsaXBPdXRwdXQubGVuZ3RoO1xuXHRcdFx0XHRcdGlmIChjbGlwT3V0cHV0TGVuZ3RoID09IDApIGNvbnRpbnVlO1xuXHRcdFx0XHRcdGxldCBkMCA9IHkyIC0geTMsIGQxID0geDMgLSB4MiwgZDIgPSB4MSAtIHgzLCBkNCA9IHkzIC0geTE7XG5cdFx0XHRcdFx0bGV0IGQgPSAxIC8gKGQwICogZDIgKyBkMSAqICh5MSAtIHkzKSk7XG5cblx0XHRcdFx0XHRsZXQgY2xpcE91dHB1dENvdW50ID0gY2xpcE91dHB1dExlbmd0aCA+PiAxO1xuXHRcdFx0XHRcdGxldCBjbGlwT3V0cHV0SXRlbXMgPSB0aGlzLmNsaXBPdXRwdXQ7XG5cdFx0XHRcdFx0bGV0IGNsaXBwZWRWZXJ0aWNlc0l0ZW1zID0gVXRpbHMuc2V0QXJyYXlTaXplKGNsaXBwZWRWZXJ0aWNlcywgcyArIGNsaXBPdXRwdXRDb3VudCAqIDIpO1xuXHRcdFx0XHRcdGxldCBjbGlwcGVkVVZzSXRlbXMgPSBVdGlscy5zZXRBcnJheVNpemUoY2xpcHBlZFVWcywgcyArIGNsaXBPdXRwdXRDb3VudCAqIDIpO1xuXHRcdFx0XHRcdGZvciAobGV0IGlpID0gMDsgaWkgPCBjbGlwT3V0cHV0TGVuZ3RoOyBpaSArPSAyLCBzICs9IDIpIHtcblx0XHRcdFx0XHRcdGxldCB4ID0gY2xpcE91dHB1dEl0ZW1zW2lpXSwgeSA9IGNsaXBPdXRwdXRJdGVtc1tpaSArIDFdO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbc10gPSB4O1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDFdID0geTtcblx0XHRcdFx0XHRcdGxldCBjMCA9IHggLSB4MywgYzEgPSB5IC0geTM7XG5cdFx0XHRcdFx0XHRsZXQgYSA9IChkMCAqIGMwICsgZDEgKiBjMSkgKiBkO1xuXHRcdFx0XHRcdFx0bGV0IGIgPSAoZDQgKiBjMCArIGQyICogYzEpICogZDtcblx0XHRcdFx0XHRcdGxldCBjID0gMSAtIGEgLSBiO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFVWc0l0ZW1zW3NdID0gdTEgKiBhICsgdTIgKiBiICsgdTMgKiBjO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFVWc0l0ZW1zW3MgKyAxXSA9IHYxICogYSArIHYyICogYiArIHYzICogYztcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRzID0gY2xpcHBlZFRyaWFuZ2xlcy5sZW5ndGg7XG5cdFx0XHRcdFx0bGV0IGNsaXBwZWRUcmlhbmdsZXNJdGVtcyA9IFV0aWxzLnNldEFycmF5U2l6ZShjbGlwcGVkVHJpYW5nbGVzLCBzICsgMyAqIChjbGlwT3V0cHV0Q291bnQgLSAyKSk7XG5cdFx0XHRcdFx0Y2xpcE91dHB1dENvdW50LS07XG5cdFx0XHRcdFx0Zm9yIChsZXQgaWkgPSAxOyBpaSA8IGNsaXBPdXRwdXRDb3VudDsgaWkrKywgcyArPSAzKSB7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVHJpYW5nbGVzSXRlbXNbc10gPSBpbmRleDtcblx0XHRcdFx0XHRcdGNsaXBwZWRUcmlhbmdsZXNJdGVtc1tzICsgMV0gPSAoaW5kZXggKyBpaSk7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVHJpYW5nbGVzSXRlbXNbcyArIDJdID0gKGluZGV4ICsgaWkgKyAxKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aW5kZXggKz0gY2xpcE91dHB1dENvdW50ICsgMTtcblxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGxldCBjbGlwcGVkVmVydGljZXNJdGVtcyA9IFV0aWxzLnNldEFycmF5U2l6ZShjbGlwcGVkVmVydGljZXMsIHMgKyAzICogMik7XG5cdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbc10gPSB4MTtcblx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMV0gPSB5MTtcblx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMl0gPSB4Mjtcblx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgM10gPSB5Mjtcblx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgNF0gPSB4Mztcblx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgNV0gPSB5MztcblxuXHRcdFx0XHRcdGxldCBjbGlwcGVkVVZTSXRlbXMgPSBVdGlscy5zZXRBcnJheVNpemUoY2xpcHBlZFVWcywgcyArIDMgKiAyKTtcblx0XHRcdFx0XHRjbGlwcGVkVVZTSXRlbXNbc10gPSB1MTtcblx0XHRcdFx0XHRjbGlwcGVkVVZTSXRlbXNbcyArIDFdID0gdjE7XG5cdFx0XHRcdFx0Y2xpcHBlZFVWU0l0ZW1zW3MgKyAyXSA9IHUyO1xuXHRcdFx0XHRcdGNsaXBwZWRVVlNJdGVtc1tzICsgM10gPSB2Mjtcblx0XHRcdFx0XHRjbGlwcGVkVVZTSXRlbXNbcyArIDRdID0gdTM7XG5cdFx0XHRcdFx0Y2xpcHBlZFVWU0l0ZW1zW3MgKyA1XSA9IHYzO1xuXG5cdFx0XHRcdFx0cyA9IGNsaXBwZWRUcmlhbmdsZXMubGVuZ3RoO1xuXHRcdFx0XHRcdGxldCBjbGlwcGVkVHJpYW5nbGVzSXRlbXMgPSBVdGlscy5zZXRBcnJheVNpemUoY2xpcHBlZFRyaWFuZ2xlcywgcyArIDMpO1xuXHRcdFx0XHRcdGNsaXBwZWRUcmlhbmdsZXNJdGVtc1tzXSA9IGluZGV4O1xuXHRcdFx0XHRcdGNsaXBwZWRUcmlhbmdsZXNJdGVtc1tzICsgMV0gPSAoaW5kZXggKyAxKTtcblx0XHRcdFx0XHRjbGlwcGVkVHJpYW5nbGVzSXRlbXNbcyArIDJdID0gKGluZGV4ICsgMik7XG5cdFx0XHRcdFx0aW5kZXggKz0gMztcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKiBDbGlwcyB0aGUgaW5wdXQgdHJpYW5nbGUgYWdhaW5zdCB0aGUgY29udmV4LCBjbG9ja3dpc2UgY2xpcHBpbmcgYXJlYS4gSWYgdGhlIHRyaWFuZ2xlIGxpZXMgZW50aXJlbHkgd2l0aGluIHRoZSBjbGlwcGluZ1xuXHQgKiBhcmVhLCBmYWxzZSBpcyByZXR1cm5lZC4gVGhlIGNsaXBwaW5nIGFyZWEgbXVzdCBkdXBsaWNhdGUgdGhlIGZpcnN0IHZlcnRleCBhdCB0aGUgZW5kIG9mIHRoZSB2ZXJ0aWNlcyBsaXN0LiAqL1xuXHRjbGlwICh4MTogbnVtYmVyLCB5MTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyLCB4MzogbnVtYmVyLCB5MzogbnVtYmVyLCBjbGlwcGluZ0FyZWE6IEFycmF5PG51bWJlcj4sIG91dHB1dDogQXJyYXk8bnVtYmVyPikge1xuXHRcdGxldCBvcmlnaW5hbE91dHB1dCA9IG91dHB1dDtcblx0XHRsZXQgY2xpcHBlZCA9IGZhbHNlO1xuXG5cdFx0Ly8gQXZvaWQgY29weSBhdCB0aGUgZW5kLlxuXHRcdGxldCBpbnB1dDogQXJyYXk8bnVtYmVyPjtcblx0XHRpZiAoY2xpcHBpbmdBcmVhLmxlbmd0aCAlIDQgPj0gMikge1xuXHRcdFx0aW5wdXQgPSBvdXRwdXQ7XG5cdFx0XHRvdXRwdXQgPSB0aGlzLnNjcmF0Y2g7XG5cdFx0fSBlbHNlXG5cdFx0XHRpbnB1dCA9IHRoaXMuc2NyYXRjaDtcblxuXHRcdGlucHV0Lmxlbmd0aCA9IDA7XG5cdFx0aW5wdXQucHVzaCh4MSk7XG5cdFx0aW5wdXQucHVzaCh5MSk7XG5cdFx0aW5wdXQucHVzaCh4Mik7XG5cdFx0aW5wdXQucHVzaCh5Mik7XG5cdFx0aW5wdXQucHVzaCh4Myk7XG5cdFx0aW5wdXQucHVzaCh5Myk7XG5cdFx0aW5wdXQucHVzaCh4MSk7XG5cdFx0aW5wdXQucHVzaCh5MSk7XG5cdFx0b3V0cHV0Lmxlbmd0aCA9IDA7XG5cblx0XHRsZXQgY2xpcHBpbmdWZXJ0aWNlc0xhc3QgPSBjbGlwcGluZ0FyZWEubGVuZ3RoIC0gNDtcblx0XHRsZXQgY2xpcHBpbmdWZXJ0aWNlcyA9IGNsaXBwaW5nQXJlYTtcblx0XHRmb3IgKGxldCBpID0gMDsgOyBpICs9IDIpIHtcblx0XHRcdGxldCBlZGdlWCA9IGNsaXBwaW5nVmVydGljZXNbaV0sIGVkZ2VZID0gY2xpcHBpbmdWZXJ0aWNlc1tpICsgMV07XG5cdFx0XHRsZXQgZXggPSBlZGdlWCAtIGNsaXBwaW5nVmVydGljZXNbaSArIDJdLCBleSA9IGVkZ2VZIC0gY2xpcHBpbmdWZXJ0aWNlc1tpICsgM107XG5cblx0XHRcdGxldCBvdXRwdXRTdGFydCA9IG91dHB1dC5sZW5ndGg7XG5cdFx0XHRsZXQgaW5wdXRWZXJ0aWNlcyA9IGlucHV0O1xuXHRcdFx0Zm9yIChsZXQgaWkgPSAwLCBubiA9IGlucHV0Lmxlbmd0aCAtIDI7IGlpIDwgbm47KSB7XG5cdFx0XHRcdGxldCBpbnB1dFggPSBpbnB1dFZlcnRpY2VzW2lpXSwgaW5wdXRZID0gaW5wdXRWZXJ0aWNlc1tpaSArIDFdO1xuXHRcdFx0XHRpaSArPSAyO1xuXHRcdFx0XHRsZXQgaW5wdXRYMiA9IGlucHV0VmVydGljZXNbaWldLCBpbnB1dFkyID0gaW5wdXRWZXJ0aWNlc1tpaSArIDFdO1xuXHRcdFx0XHRsZXQgczIgPSBleSAqIChlZGdlWCAtIGlucHV0WDIpID4gZXggKiAoZWRnZVkgLSBpbnB1dFkyKTtcblx0XHRcdFx0bGV0IHMxID0gZXkgKiAoZWRnZVggLSBpbnB1dFgpIC0gZXggKiAoZWRnZVkgLSBpbnB1dFkpO1xuXHRcdFx0XHRpZiAoczEgPiAwKSB7XG5cdFx0XHRcdFx0aWYgKHMyKSB7IC8vIHYxIGluc2lkZSwgdjIgaW5zaWRlXG5cdFx0XHRcdFx0XHRvdXRwdXQucHVzaChpbnB1dFgyKTtcblx0XHRcdFx0XHRcdG91dHB1dC5wdXNoKGlucHV0WTIpO1xuXHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vIHYxIGluc2lkZSwgdjIgb3V0c2lkZVxuXHRcdFx0XHRcdGxldCBpeCA9IGlucHV0WDIgLSBpbnB1dFgsIGl5ID0gaW5wdXRZMiAtIGlucHV0WSwgdCA9IHMxIC8gKGl4ICogZXkgLSBpeSAqIGV4KTtcblx0XHRcdFx0XHRpZiAodCA+PSAwICYmIHQgPD0gMSkge1xuXHRcdFx0XHRcdFx0b3V0cHV0LnB1c2goaW5wdXRYICsgaXggKiB0KTtcblx0XHRcdFx0XHRcdG91dHB1dC5wdXNoKGlucHV0WSArIGl5ICogdCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdG91dHB1dC5wdXNoKGlucHV0WDIpO1xuXHRcdFx0XHRcdFx0b3V0cHV0LnB1c2goaW5wdXRZMik7XG5cdFx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gZWxzZSBpZiAoczIpIHsgLy8gdjEgb3V0c2lkZSwgdjIgaW5zaWRlXG5cdFx0XHRcdFx0bGV0IGl4ID0gaW5wdXRYMiAtIGlucHV0WCwgaXkgPSBpbnB1dFkyIC0gaW5wdXRZLCB0ID0gczEgLyAoaXggKiBleSAtIGl5ICogZXgpO1xuXHRcdFx0XHRcdGlmICh0ID49IDAgJiYgdCA8PSAxKSB7XG5cdFx0XHRcdFx0XHRvdXRwdXQucHVzaChpbnB1dFggKyBpeCAqIHQpO1xuXHRcdFx0XHRcdFx0b3V0cHV0LnB1c2goaW5wdXRZICsgaXkgKiB0KTtcblx0XHRcdFx0XHRcdG91dHB1dC5wdXNoKGlucHV0WDIpO1xuXHRcdFx0XHRcdFx0b3V0cHV0LnB1c2goaW5wdXRZMik7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdG91dHB1dC5wdXNoKGlucHV0WDIpO1xuXHRcdFx0XHRcdFx0b3V0cHV0LnB1c2goaW5wdXRZMik7XG5cdFx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0Y2xpcHBlZCA9IHRydWU7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChvdXRwdXRTdGFydCA9PSBvdXRwdXQubGVuZ3RoKSB7IC8vIEFsbCBlZGdlcyBvdXRzaWRlLlxuXHRcdFx0XHRvcmlnaW5hbE91dHB1dC5sZW5ndGggPSAwO1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblxuXHRcdFx0b3V0cHV0LnB1c2gob3V0cHV0WzBdKTtcblx0XHRcdG91dHB1dC5wdXNoKG91dHB1dFsxXSk7XG5cblx0XHRcdGlmIChpID09IGNsaXBwaW5nVmVydGljZXNMYXN0KSBicmVhaztcblx0XHRcdGxldCB0ZW1wID0gb3V0cHV0O1xuXHRcdFx0b3V0cHV0ID0gaW5wdXQ7XG5cdFx0XHRvdXRwdXQubGVuZ3RoID0gMDtcblx0XHRcdGlucHV0ID0gdGVtcDtcblx0XHR9XG5cblx0XHRpZiAob3JpZ2luYWxPdXRwdXQgIT0gb3V0cHV0KSB7XG5cdFx0XHRvcmlnaW5hbE91dHB1dC5sZW5ndGggPSAwO1xuXHRcdFx0Zm9yIChsZXQgaSA9IDAsIG4gPSBvdXRwdXQubGVuZ3RoIC0gMjsgaSA8IG47IGkrKylcblx0XHRcdFx0b3JpZ2luYWxPdXRwdXRbaV0gPSBvdXRwdXRbaV07XG5cdFx0fSBlbHNlXG5cdFx0XHRvcmlnaW5hbE91dHB1dC5sZW5ndGggPSBvcmlnaW5hbE91dHB1dC5sZW5ndGggLSAyO1xuXG5cdFx0cmV0dXJuIGNsaXBwZWQ7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIG1ha2VDbG9ja3dpc2UgKHBvbHlnb246IE51bWJlckFycmF5TGlrZSkge1xuXHRcdGxldCB2ZXJ0aWNlcyA9IHBvbHlnb247XG5cdFx0bGV0IHZlcnRpY2VzbGVuZ3RoID0gcG9seWdvbi5sZW5ndGg7XG5cblx0XHRsZXQgYXJlYSA9IHZlcnRpY2VzW3ZlcnRpY2VzbGVuZ3RoIC0gMl0gKiB2ZXJ0aWNlc1sxXSAtIHZlcnRpY2VzWzBdICogdmVydGljZXNbdmVydGljZXNsZW5ndGggLSAxXSwgcDF4ID0gMCwgcDF5ID0gMCwgcDJ4ID0gMCwgcDJ5ID0gMDtcblx0XHRmb3IgKGxldCBpID0gMCwgbiA9IHZlcnRpY2VzbGVuZ3RoIC0gMzsgaSA8IG47IGkgKz0gMikge1xuXHRcdFx0cDF4ID0gdmVydGljZXNbaV07XG5cdFx0XHRwMXkgPSB2ZXJ0aWNlc1tpICsgMV07XG5cdFx0XHRwMnggPSB2ZXJ0aWNlc1tpICsgMl07XG5cdFx0XHRwMnkgPSB2ZXJ0aWNlc1tpICsgM107XG5cdFx0XHRhcmVhICs9IHAxeCAqIHAyeSAtIHAyeCAqIHAxeTtcblx0XHR9XG5cdFx0aWYgKGFyZWEgPCAwKSByZXR1cm47XG5cblx0XHRmb3IgKGxldCBpID0gMCwgbGFzdFggPSB2ZXJ0aWNlc2xlbmd0aCAtIDIsIG4gPSB2ZXJ0aWNlc2xlbmd0aCA+PiAxOyBpIDwgbjsgaSArPSAyKSB7XG5cdFx0XHRsZXQgeCA9IHZlcnRpY2VzW2ldLCB5ID0gdmVydGljZXNbaSArIDFdO1xuXHRcdFx0bGV0IG90aGVyID0gbGFzdFggLSBpO1xuXHRcdFx0dmVydGljZXNbaV0gPSB2ZXJ0aWNlc1tvdGhlcl07XG5cdFx0XHR2ZXJ0aWNlc1tpICsgMV0gPSB2ZXJ0aWNlc1tvdGhlciArIDFdO1xuXHRcdFx0dmVydGljZXNbb3RoZXJdID0geDtcblx0XHRcdHZlcnRpY2VzW290aGVyICsgMV0gPSB5O1xuXHRcdH1cblx0fVxufVxuIl19
487
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2tlbGV0b25DbGlwcGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Ta2VsZXRvbkNsaXBwaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUkvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssRUFBMEIsTUFBTSxZQUFZLENBQUM7QUFFM0QsTUFBTSxPQUFPLGdCQUFnQjtJQUNwQixZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNsQyxlQUFlLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUN0QyxVQUFVLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUN6QyxlQUFlLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUN0QyxVQUFVLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUNqQyxnQkFBZ0IsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBQy9CLE9BQU8sR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBRTlCLGNBQWMsR0FBOEIsSUFBSSxDQUFDO0lBQ2pELGdCQUFnQixHQUFnQyxJQUFJLENBQUM7SUFFN0QsU0FBUyxDQUFFLElBQVUsRUFBRSxJQUF3QjtRQUM5QyxJQUFJLElBQUksQ0FBQyxjQUFjO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFFM0IsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ2pDLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMs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R0FBRyxDQUFDLENBQUM7UUFDM0IsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUM1QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM3QyxJQUFJLFlBQVksR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNqRSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFdkQsWUFBWSxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNqRSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFdkQsWUFBWSxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNqRSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFdkQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxH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Q0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQzdCLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ2pDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUN0QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDdEMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQ3RDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUN0QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ2Ysb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDakMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFFakMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDakMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDakMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQ3ZDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUN2QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzt3QkFDdkMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQ3ZDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2xDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBRWxDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2xDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2xDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUN2QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzt3QkFDdkMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQ3ZDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUN2QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO3dCQUNsQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUNuQyxDQUFDO3lCQUFNLENBQUM7d0JBQ1Asb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDakMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDakMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQ3JDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO3dCQUNyQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDdEMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBRXRDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2xDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2xDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUN2QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzt3QkFDdkMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQ3ZDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUN2QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO3dCQUNsQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO3dCQUNsQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDdEMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQ3RDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO3dCQUN0QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFFdEMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDbEMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDbEMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQ3ZDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUN2QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzt3QkFDdkMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQ3ZDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2xDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2xDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO3dCQUN0QyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDdEMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQ3RDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUN2QyxDQUFDO29CQUVELENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7b0JBQzVCLElBQUkscUJBQXFCLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3hFLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztvQkFDakMscUJBQXFCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUMzQyxxQkFBcUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQzNDLEtBQUssSUFBSSxDQUFDLENBQUM7b0JBQ1gsTUFBTTtnQkFDUCxDQUFDO1lBQ0YsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBRU0scUJBQXFCLENBQUUsUUFBeUIsRUFBRSxTQUEwQixFQUFFLGVBQXVCLEVBQUUsR0FBb0I7UUFDakksSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN2RyxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUM3QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWlCLENBQUM7UUFDdEMsSUFBSSxhQUFhLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUVwQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUMzQixVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUN0QixnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzdDLElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsR0FBRyxRQUFRLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztZQUV2RCxZQUFZLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsR0FBRyxRQUFRLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztZQUV2RCxZQUFZLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsR0FBRyxRQUFRLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztZQUV2RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUM7Z0JBQy9CLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDaEUsSUFBSSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO29CQUN6QyxJQUFJLGdCQUFnQixJQUFJLENBQUM7d0JBQUUsU0FBUztvQkFDcEMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztvQkFDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFFdkMsSUFBSSxlQUFlLEdBQUcsZ0JBQWdCLElBQUksQ0FBQyxDQUFDO29CQUM1QyxJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO29CQUN0QyxJQUFJLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLENBQUMsR0FBRyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3hGLElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQzlFLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDekQsSUFBSSxDQUFDLEdBQUcsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxlQUFlLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUN6RCxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQzVCLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQ2hDLElBQUksRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUNoQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQ2xCLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDOUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDbkQsQ0FBQztvQkFFRCxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO29CQUM1QixJQUFJLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNoRyxlQUFlLEVBQUUsQ0FBQztvQkFDbEIsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLGVBQWUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ3JELHFCQUFxQixDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQzt3QkFDakMscUJBQXFCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO3dCQUM1QyxxQkFBcUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUNqRCxDQUFDO29CQUNELEtBQUssSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDO2dCQUU5QixDQUFDO3FCQUFNLENBQUM7b0JBQ1AsSUFBSSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUMxRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQzdCLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ2pDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ2pDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ2pDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ2pDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBRWpDLElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ2hFLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ3hCLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUM1QixlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDNUIsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQzVCLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUM1QixlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFFNUIsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztvQkFDNUIsSUFBSSxxQkFBcUIsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDeEUscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO29CQUNqQyxxQkFBcUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQzNDLHFCQUFxQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDM0MsS0FBSyxJQUFJLENBQUMsQ0FBQztvQkFDWCxNQUFNO2dCQUNQLENBQUM7WUFDRixDQUFDO1FBQ0YsQ0FBQztJQUNGLENBQUM7SUFFRDtxSEFDaUg7SUFDakgsSUFBSSxDQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLFlBQTJCLEVBQUUsTUFBcUI7UUFDL0gsSUFBSSxjQUFjLEdBQUcsTUFBTSxDQUFDO1FBQzVCLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztRQUVwQix5QkFBeUI7UUFDekIsSUFBSSxLQUFvQixDQUFDO1FBQ3pCLElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEMsS0FBSyxHQUFHLE1BQU0sQ0FBQztZQUNmLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3ZCLENBQUM7O1lBQ0EsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFdEIsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDakIsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNmLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDZixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2YsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNmLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDZixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2YsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNmLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDZixNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUVsQixJQUFJLG9CQUFvQixHQUFHLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELElBQUksZ0JBQWdCLEdBQUcsWUFBWSxDQUFDO1FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLElBQUksRUFBRSxHQUFHLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFL0UsSUFBSSxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNoQyxJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDMUIsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztnQkFDbEQsSUFBSSxNQUFNLEdBQUcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sR0FBRyxhQUFhLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUMvRCxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNSLElBQUksT0FBTyxHQUFHLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLEdBQUcsYUFBYSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDakUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQztnQkFDekQsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQztnQkFDdkQsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ1osSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLHVCQUF1Qjt3QkFDaEMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDckIsU0FBUztvQkFDVixDQUFDO29CQUNELHdCQUF3QjtvQkFDeEIsSUFBSSxFQUFFLEdBQUcsT0FBTyxHQUFHLE1BQU0sRUFBRSxFQUFFLEdBQUcsT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBQy9FLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUM5QixDQUFDO3lCQUFNLENBQUM7d0JBQ1AsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDckIsU0FBUztvQkFDVixDQUFDO2dCQUNGLENBQUM7cUJBQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QjtvQkFDeEMsSUFBSSxFQUFFLEdBQUcsT0FBTyxHQUFHLE1BQU0sRUFBRSxFQUFFLEdBQUcsT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBQy9FLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN0QixDQUFDO3lCQUFNLENBQUM7d0JBQ1AsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDckIsU0FBUztvQkFDVixDQUFDO2dCQUNGLENBQUM7Z0JBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNoQixDQUFDO1lBRUQsSUFBSSxXQUFXLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMscUJBQXFCO2dCQUN4RCxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDMUIsT0FBTyxJQUFJLENBQUM7WUFDYixDQUFDO1lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXZCLElBQUksQ0FBQyxJQUFJLG9CQUFvQjtnQkFBRSxNQUFNO1lBQ3JDLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQztZQUNsQixNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ2YsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDbEIsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLGNBQWMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUM5QixjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQ2hELGNBQWMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsQ0FBQzs7WUFDQSxjQUFjLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRW5ELE9BQU8sT0FBTyxDQUFDO0lBQ2hCLENBQUM7SUFFTSxNQUFNLENBQUMsYUFBYSxDQUFFLE9BQXdCO1FBQ3BELElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLGNBQWMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBRXBDLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDdkksS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGNBQWMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdkQsR0FBRyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN0QixHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN0QixHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN0QixJQUFJLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQy9CLENBQUM7UUFDRCxJQUFJLElBQUksR0FBRyxDQUFDO1lBQUUsT0FBTztRQUVyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsY0FBYyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsY0FBYyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwRixJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekMsSUFBSSxLQUFLLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUN0QixRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN0QyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDRixDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBTcGluZSBSdW50aW1lcyBMaWNlbnNlIEFncmVlbWVudFxuICogTGFzdCB1cGRhdGVkIEFwcmlsIDUsIDIwMjUuIFJlcGxhY2VzIGFsbCBwcmlvciB2ZXJzaW9ucy5cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAyNSwgRXNvdGVyaWMgU29mdHdhcmUgTExDXG4gKlxuICogSW50ZWdyYXRpb24gb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmUgb3Igb3RoZXJ3aXNlIGNyZWF0aW5nXG4gKiBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpcyBwZXJtaXR0ZWQgdW5kZXIgdGhlIHRlcm1zIGFuZFxuICogY29uZGl0aW9ucyBvZiBTZWN0aW9uIDIgb2YgdGhlIFNwaW5lIEVkaXRvciBMaWNlbnNlIEFncmVlbWVudDpcbiAqIGh0dHA6Ly9lc290ZXJpY3NvZnR3YXJlLmNvbS9zcGluZS1lZGl0b3ItbGljZW5zZVxuICpcbiAqIE90aGVyd2lzZSwgaXQgaXMgcGVybWl0dGVkIHRvIGludGVncmF0ZSB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZVxuICogb3Igb3RoZXJ3aXNlIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyAoY29sbGVjdGl2ZWx5LFxuICogXCJQcm9kdWN0c1wiKSwgcHJvdmlkZWQgdGhhdCBlYWNoIHVzZXIgb2YgdGhlIFByb2R1Y3RzIG11c3Qgb2J0YWluIHRoZWlyIG93blxuICogU3BpbmUgRWRpdG9yIGxpY2Vuc2UgYW5kIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9kdWN0cyBpbiBhbnkgZm9ybSBtdXN0XG4gKiBpbmNsdWRlIHRoaXMgbGljZW5zZSBhbmQgY29weXJpZ2h0IG5vdGljZS5cbiAqXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMgQVJFIFBST1ZJREVEIEJZIEVTT1RFUklDIFNPRlRXQVJFIExMQyBcIkFTIElTXCIgQU5EIEFOWVxuICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRFxuICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRVxuICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgRVNPVEVSSUMgU09GVFdBUkUgTExDIEJFIExJQUJMRSBGT1IgQU5ZXG4gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFU1xuICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTLFxuICogQlVTSU5FU1MgSU5URVJSVVBUSU9OLCBPUiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUykgSE9XRVZFUiBDQVVTRUQgQU5EXG4gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVFxuICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmltcG9ydCB7IENsaXBwaW5nQXR0YWNobWVudCB9IGZyb20gXCIuL2F0dGFjaG1lbnRzL0NsaXBwaW5nQXR0YWNobWVudC5qc1wiO1xuaW1wb3J0IHsgU2xvdCB9IGZyb20gXCIuL1Nsb3QuanNcIjtcbmltcG9ydCB7IFRyaWFuZ3VsYXRvciB9IGZyb20gXCIuL1RyaWFuZ3VsYXRvci5qc1wiO1xuaW1wb3J0IHsgVXRpbHMsIENvbG9yLCBOdW1iZXJBcnJheUxpa2UgfSBmcm9tIFwiLi9VdGlscy5qc1wiO1xuXG5leHBvcnQgY2xhc3MgU2tlbGV0b25DbGlwcGluZyB7XG5cdHByaXZhdGUgdHJpYW5ndWxhdG9yID0gbmV3IFRyaWFuZ3VsYXRvcigpO1xuXHRwcml2YXRlIGNsaXBwaW5nUG9seWdvbiA9IG5ldyBBcnJheTxudW1iZXI+KCk7XG5cdHByaXZhdGUgY2xpcE91dHB1dCA9IG5ldyBBcnJheTxudW1iZXI+KCk7XG5cdGNsaXBwZWRWZXJ0aWNlcyA9IG5ldyBBcnJheTxudW1iZXI+KCk7XG5cdGNsaXBwZWRVVnMgPSBuZXcgQXJyYXk8bnVtYmVyPigpO1xuXHRjbGlwcGVkVHJpYW5nbGVzID0gbmV3IEFycmF5PG51bWJlcj4oKTtcblx0cHJpdmF0ZSBzY3JhdGNoID0gbmV3IEFycmF5PG51bWJlcj4oKTtcblxuXHRwcml2YXRlIGNsaXBBdHRhY2htZW50OiBDbGlwcGluZ0F0dGFjaG1lbnQgfCBudWxsID0gbnVsbDtcblx0cHJpdmF0ZSBjbGlwcGluZ1BvbHlnb25zOiBBcnJheTxBcnJheTxudW1iZXI+PiB8IG51bGwgPSBudWxsO1xuXG5cdGNsaXBTdGFydCAoc2xvdDogU2xvdCwgY2xpcDogQ2xpcHBpbmdBdHRhY2htZW50KTogbnVtYmVyIHtcblx0XHRpZiAodGhpcy5jbGlwQXR0YWNobWVudCkgcmV0dXJuIDA7XG5cdFx0dGhpcy5jbGlwQXR0YWNobWVudCA9IGNsaXA7XG5cblx0XHRsZXQgbiA9IGNsaXAud29ybGRWZXJ0aWNlc0xlbmd0aDtcblx0XHRsZXQgdmVydGljZXMgPSBVdGlscy5zZXRBcnJheVNpemUodGhpcy5jbGlwcGluZ1BvbHlnb24sIG4pO1xuXHRcdGNsaXAuY29tcHV0ZVdvcmxkVmVydGljZXMoc2xvdCwgMCwgbiwgdmVydGljZXMsIDAsIDIpO1xuXHRcdGxldCBjbGlwcGluZ1BvbHlnb24gPSB0aGlzLmNsaXBwaW5nUG9seWdvbjtcblx0XHRTa2VsZXRvbkNsaXBwaW5nLm1ha2VDbG9ja3dpc2UoY2xpcHBpbmdQb2x5Z29uKTtcblx0XHRsZXQgY2xpcHBpbmdQb2x5Z29ucyA9IHRoaXMuY2xpcHBpbmdQb2x5Z29ucyA9IHRoaXMudHJpYW5ndWxhdG9yLmRlY29tcG9zZShjbGlwcGluZ1BvbHlnb24sIHRoaXMudHJpYW5ndWxhdG9yLnRyaWFuZ3VsYXRlKGNsaXBwaW5nUG9seWdvbikpO1xuXHRcdGZvciAobGV0IGkgPSAwLCBuID0gY2xpcHBpbmdQb2x5Z29ucy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcblx0XHRcdGxldCBwb2x5Z29uID0gY2xpcHBpbmdQb2x5Z29uc1tpXTtcblx0XHRcdFNrZWxldG9uQ2xpcHBpbmcubWFrZUNsb2Nrd2lzZShwb2x5Z29uKTtcblx0XHRcdHBvbHlnb24ucHVzaChwb2x5Z29uWzBdKTtcblx0XHRcdHBvbHlnb24ucHVzaChwb2x5Z29uWzFdKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gY2xpcHBpbmdQb2x5Z29ucy5sZW5ndGg7XG5cdH1cblxuXHRjbGlwRW5kV2l0aFNsb3QgKHNsb3Q6IFNsb3QpIHtcblx0XHRpZiAodGhpcy5jbGlwQXR0YWNobWVudCAmJiB0aGlzLmNsaXBBdHRhY2htZW50LmVuZFNsb3QgPT0gc2xvdC5kYXRhKSB0aGlzLmNsaXBFbmQoKTtcblx0fVxuXG5cdGNsaXBFbmQgKCkge1xuXHRcdGlmICghdGhpcy5jbGlwQXR0YWNobWVudCkgcmV0dXJuO1xuXHRcdHRoaXMuY2xpcEF0dGFjaG1lbnQgPSBudWxsO1xuXHRcdHRoaXMuY2xpcHBpbmdQb2x5Z29ucyA9IG51bGw7XG5cdFx0dGhpcy5jbGlwcGVkVmVydGljZXMubGVuZ3RoID0gMDtcblx0XHR0aGlzLmNsaXBwZWRUcmlhbmdsZXMubGVuZ3RoID0gMDtcblx0XHR0aGlzLmNsaXBwaW5nUG9seWdvbi5sZW5ndGggPSAwO1xuXHR9XG5cblx0aXNDbGlwcGluZyAoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuY2xpcEF0dGFjaG1lbnQgIT0gbnVsbDtcblx0fVxuXG5cdC8qKlxuXHQqIEBkZXByZWNhdGVkIFVzZSBjbGlwVHJpYW5nbGVzIHdpdGhvdXQgdmVydGljZXNMZW5ndGggcGFyYW1ldGVyLiBNYXJrIGZvciByZW1vdmFsIGluIDQuMy5cblx0Ki9cblx0Y2xpcFRyaWFuZ2xlcyAodmVydGljZXM6IE51bWJlckFycmF5TGlrZSwgdmVydGljZXNMZW5ndGg6IG51bWJlciwgdHJpYW5nbGVzOiBOdW1iZXJBcnJheUxpa2UsIHRyaWFuZ2xlc0xlbmd0aDogbnVtYmVyKTogdm9pZDtcblxuXHQvKipcblx0ICogQGRlcHJlY2F0ZWQgVXNlIGNsaXBUcmlhbmdsZXMgd2l0aG91dCB2ZXJ0aWNlc0xlbmd0aCBwYXJhbWV0ZXIuIE1hcmsgZm9yIHJlbW92YWwgaW4gNC4zLlxuXHQgKi9cblx0Y2xpcFRyaWFuZ2xlcyAodmVydGljZXM6IE51bWJlckFycmF5TGlrZSwgdmVydGljZXNMZW5ndGg6IG51bWJlciwgdHJpYW5nbGVzOiBOdW1iZXJBcnJheUxpa2UsIHRyaWFuZ2xlc0xlbmd0aDogbnVtYmVyLCB1dnM6IE51bWJlckFycmF5TGlrZSwgbGlnaHQ6IENvbG9yLCBkYXJrOiBDb2xvciwgdHdvQ29sb3I6IGJvb2xlYW4pOiB2b2lkO1xuXG5cdGNsaXBUcmlhbmdsZXMgKHZlcnRpY2VzOiBOdW1iZXJBcnJheUxpa2UsIHRyaWFuZ2xlczogTnVtYmVyQXJyYXlMaWtlLCB0cmlhbmdsZXNMZW5ndGg6IG51bWJlcik6IHZvaWQ7XG5cdGNsaXBUcmlhbmdsZXMgKHZlcnRpY2VzOiBOdW1iZXJBcnJheUxpa2UsIHRyaWFuZ2xlczogTnVtYmVyQXJyYXlMaWtlLCB0cmlhbmdsZXNMZW5ndGg6IG51bWJlciwgdXZzOiBOdW1iZXJBcnJheUxpa2UsIGxpZ2h0OiBDb2xvciwgZGFyazogQ29sb3IsIHR3b0NvbG9yOiBib29sZWFuKTogdm9pZDtcblx0Y2xpcFRyaWFuZ2xlcyAoXG5cdFx0dmVydGljZXM6IE51bWJlckFycmF5TGlrZSxcblx0XHR2ZXJ0aWNlc0xlbmd0aE9yVHJpYW5nbGVzOiBudW1iZXIgfCBOdW1iZXJBcnJheUxpa2UsXG5cdFx0dHJpYW5nbGVzT3JUcmlhbmdsZXNMZW5ndGg6IE51bWJlckFycmF5TGlrZSB8IG51bWJlcixcblx0XHR0cmlhbmdsZXNMZW5ndGhPclV2cz86IG51bWJlciB8IE51bWJlckFycmF5TGlrZSxcblx0XHR1dnNPckxpZ2h0PzogTnVtYmVyQXJyYXlMaWtlIHwgQ29sb3IsXG5cdFx0bGlnaHRPckRhcms/OiBDb2xvcixcblx0XHRkYXJrT3JUd29Db2xvcj86IENvbG9yIHwgYm9vbGVhbixcblx0XHR0d29Db2xvclBhcmFtPzogYm9vbGVhblxuXHQpOiB2b2lkIHtcblx0XHQvLyBEZXRlcm1pbmUgd2hpY2ggb3ZlcmxvYWQgaXMgYmVpbmcgdXNlZFxuXHRcdGxldCB0cmlhbmdsZXM6IE51bWJlckFycmF5TGlrZTtcblx0XHRsZXQgdHJpYW5nbGVzTGVuZ3RoOiBudW1iZXI7XG5cdFx0bGV0IHV2czogTnVtYmVyQXJyYXlMaWtlIHwgdW5kZWZpbmVkO1xuXHRcdGxldCBsaWdodDogQ29sb3IgfCB1bmRlZmluZWQ7XG5cdFx0bGV0IGRhcms6IENvbG9yIHwgdW5kZWZpbmVkO1xuXHRcdGxldCB0d29Db2xvcjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuXHRcdGlmICh0eXBlb2YgdmVydGljZXNMZW5ndGhPclRyaWFuZ2xlcyA9PT0gJ251bWJlcicpIHtcblx0XHRcdHRyaWFuZ2xlcyA9IHRyaWFuZ2xlc09yVHJpYW5nbGVzTGVuZ3RoIGFzIE51bWJlckFycmF5TGlrZTtcblx0XHRcdHRyaWFuZ2xlc0xlbmd0aCA9IHRyaWFuZ2xlc0xlbmd0aE9yVXZzIGFzIG51bWJlcjtcblx0XHRcdHV2cyA9IHV2c09yTGlnaHQgYXMgTnVtYmVyQXJyYXlMaWtlO1xuXHRcdFx0bGlnaHQgPSBsaWdodE9yRGFyayBhcyBDb2xvciB8IHVuZGVmaW5lZDtcblx0XHRcdGRhcmsgPSBkYXJrT3JUd29Db2xvciBhcyBDb2xvciB8IHVuZGVmaW5lZDtcblx0XHRcdHR3b0NvbG9yID0gdHdvQ29sb3JQYXJhbTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dHJpYW5nbGVzID0gdmVydGljZXNMZW5ndGhPclRyaWFuZ2xlcztcblx0XHRcdHRyaWFuZ2xlc0xlbmd0aCA9IHRyaWFuZ2xlc09yVHJpYW5nbGVzTGVuZ3RoIGFzIG51bWJlcjtcblx0XHRcdHV2cyA9IHRyaWFuZ2xlc0xlbmd0aE9yVXZzIGFzIE51bWJlckFycmF5TGlrZTtcblx0XHRcdGxpZ2h0ID0gdXZzT3JMaWdodCBhcyBDb2xvciB8IHVuZGVmaW5lZDtcblx0XHRcdGRhcmsgPSBsaWdodE9yRGFyayBhcyBDb2xvciB8IHVuZGVmaW5lZDtcblx0XHRcdHR3b0NvbG9yID0gZGFya09yVHdvQ29sb3IgYXMgYm9vbGVhbjtcblx0XHR9XG5cblx0XHRpZiAodXZzICYmIGxpZ2h0ICYmIGRhcmsgJiYgdHlwZW9mIHR3b0NvbG9yID09PSAnYm9vbGVhbicpXG5cdFx0XHR0aGlzLmNsaXBUcmlhbmdsZXNSZW5kZXIodmVydGljZXMsIHRyaWFuZ2xlcywgdHJpYW5nbGVzTGVuZ3RoLCB1dnMsIGxpZ2h0LCBkYXJrLCB0d29Db2xvcik7XG5cdFx0ZWxzZVxuXHRcdFx0dGhpcy5jbGlwVHJpYW5nbGVzTm9SZW5kZXIodmVydGljZXMsIHRyaWFuZ2xlcywgdHJpYW5nbGVzTGVuZ3RoKTtcblx0fVxuXG5cdHByaXZhdGUgY2xpcFRyaWFuZ2xlc05vUmVuZGVyICh2ZXJ0aWNlczogTnVtYmVyQXJyYXlMaWtlLCB0cmlhbmdsZXM6IE51bWJlckFycmF5TGlrZSwgdHJpYW5nbGVzTGVuZ3RoOiBudW1iZXIpIHtcblxuXHRcdGxldCBjbGlwT3V0cHV0ID0gdGhpcy5jbGlwT3V0cHV0LCBjbGlwcGVkVmVydGljZXMgPSB0aGlzLmNsaXBwZWRWZXJ0aWNlcztcblx0XHRsZXQgY2xpcHBlZFRyaWFuZ2xlcyA9IHRoaXMuY2xpcHBlZFRyaWFuZ2xlcztcblx0XHRsZXQgcG9seWdvbnMgPSB0aGlzLmNsaXBwaW5nUG9seWdvbnMhO1xuXHRcdGxldCBwb2x5Z29uc0NvdW50ID0gcG9seWdvbnMubGVuZ3RoO1xuXG5cdFx0bGV0IGluZGV4ID0gMDtcblx0XHRjbGlwcGVkVmVydGljZXMubGVuZ3RoID0gMDtcblx0XHRjbGlwcGVkVHJpYW5nbGVzLmxlbmd0aCA9IDA7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0cmlhbmdsZXNMZW5ndGg7IGkgKz0gMykge1xuXHRcdFx0bGV0IHZlcnRleE9mZnNldCA9IHRyaWFuZ2xlc1tpXSA8PCAxO1xuXHRcdFx0bGV0IHgxID0gdmVydGljZXNbdmVydGV4T2Zmc2V0XSwgeTEgPSB2ZXJ0aWNlc1t2ZXJ0ZXhPZmZzZXQgKyAxXTtcblxuXHRcdFx0dmVydGV4T2Zmc2V0ID0gdHJpYW5nbGVzW2kgKyAxXSA8PCAxO1xuXHRcdFx0bGV0IHgyID0gdmVydGljZXNbdmVydGV4T2Zmc2V0XSwgeTIgPSB2ZXJ0aWNlc1t2ZXJ0ZXhPZmZzZXQgKyAxXTtcblxuXHRcdFx0dmVydGV4T2Zmc2V0ID0gdHJpYW5nbGVzW2kgKyAyXSA8PCAxO1xuXHRcdFx0bGV0IHgzID0gdmVydGljZXNbdmVydGV4T2Zmc2V0XSwgeTMgPSB2ZXJ0aWNlc1t2ZXJ0ZXhPZmZzZXQgKyAxXTtcblxuXHRcdFx0Zm9yIChsZXQgcCA9IDA7IHAgPCBwb2x5Z29uc0NvdW50OyBwKyspIHtcblx0XHRcdFx0bGV0IHMgPSBjbGlwcGVkVmVydGljZXMubGVuZ3RoO1xuXHRcdFx0XHRpZiAodGhpcy5jbGlwKHgxLCB5MSwgeDIsIHkyLCB4MywgeTMsIHBvbHlnb25zW3BdLCBjbGlwT3V0cHV0KSkge1xuXHRcdFx0XHRcdGxldCBjbGlwT3V0cHV0TGVuZ3RoID0gY2xpcE91dHB1dC5sZW5ndGg7XG5cdFx0XHRcdFx0aWYgKGNsaXBPdXRwdXRMZW5ndGggPT0gMCkgY29udGludWU7XG5cblx0XHRcdFx0XHRsZXQgY2xpcE91dHB1dENvdW50ID0gY2xpcE91dHB1dExlbmd0aCA+PiAxO1xuXHRcdFx0XHRcdGxldCBjbGlwT3V0cHV0SXRlbXMgPSB0aGlzLmNsaXBPdXRwdXQ7XG5cdFx0XHRcdFx0bGV0IGNsaXBwZWRWZXJ0aWNlc0l0ZW1zID0gVXRpbHMuc2V0QXJyYXlTaXplKGNsaXBwZWRWZXJ0aWNlcywgcyArIGNsaXBPdXRwdXRDb3VudCAqIDIpO1xuXHRcdFx0XHRcdGZvciAobGV0IGlpID0gMDsgaWkgPCBjbGlwT3V0cHV0TGVuZ3RoOyBpaSArPSAyLCBzICs9IDIpIHtcblx0XHRcdFx0XHRcdGxldCB4ID0gY2xpcE91dHB1dEl0ZW1zW2lpXSwgeSA9IGNsaXBPdXRwdXRJdGVtc1tpaSArIDFdO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbc10gPSB4O1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDFdID0geTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRzID0gY2xpcHBlZFRyaWFuZ2xlcy5sZW5ndGg7XG5cdFx0XHRcdFx0bGV0IGNsaXBwZWRUcmlhbmdsZXNJdGVtcyA9IFV0aWxzLnNldEFycmF5U2l6ZShjbGlwcGVkVHJpYW5nbGVzLCBzICsgMyAqIChjbGlwT3V0cHV0Q291bnQgLSAyKSk7XG5cdFx0XHRcdFx0Y2xpcE91dHB1dENvdW50LS07XG5cdFx0XHRcdFx0Zm9yIChsZXQgaWkgPSAxOyBpaSA8IGNsaXBPdXRwdXRDb3VudDsgaWkrKywgcyArPSAzKSB7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVHJpYW5nbGVzSXRlbXNbc10gPSBpbmRleDtcblx0XHRcdFx0XHRcdGNsaXBwZWRUcmlhbmdsZXNJdGVtc1tzICsgMV0gPSAoaW5kZXggKyBpaSk7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVHJpYW5nbGVzSXRlbXNbcyArIDJdID0gKGluZGV4ICsgaWkgKyAxKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aW5kZXggKz0gY2xpcE91dHB1dENvdW50ICsgMTtcblxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGxldCBjbGlwcGVkVmVydGljZXNJdGVtcyA9IFV0aWxzLnNldEFycmF5U2l6ZShjbGlwcGVkVmVydGljZXMsIHMgKyAzICogMik7XG5cdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbc10gPSB4MTtcblx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMV0gPSB5MTtcblxuXHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyXSA9IHgyO1xuXHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAzXSA9IHkyO1xuXG5cdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDRdID0geDM7XG5cdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDVdID0geTM7XG5cblx0XHRcdFx0XHRzID0gY2xpcHBlZFRyaWFuZ2xlcy5sZW5ndGg7XG5cdFx0XHRcdFx0bGV0IGNsaXBwZWRUcmlhbmdsZXNJdGVtcyA9IFV0aWxzLnNldEFycmF5U2l6ZShjbGlwcGVkVHJpYW5nbGVzLCBzICsgMyk7XG5cdFx0XHRcdFx0Y2xpcHBlZFRyaWFuZ2xlc0l0ZW1zW3NdID0gaW5kZXg7XG5cdFx0XHRcdFx0Y2xpcHBlZFRyaWFuZ2xlc0l0ZW1zW3MgKyAxXSA9IChpbmRleCArIDEpO1xuXHRcdFx0XHRcdGNsaXBwZWRUcmlhbmdsZXNJdGVtc1tzICsgMl0gPSAoaW5kZXggKyAyKTtcblx0XHRcdFx0XHRpbmRleCArPSAzO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBjbGlwVHJpYW5nbGVzUmVuZGVyICh2ZXJ0aWNlczogTnVtYmVyQXJyYXlMaWtlLCB0cmlhbmdsZXM6IE51bWJlckFycmF5TGlrZSwgdHJpYW5nbGVzTGVuZ3RoOiBudW1iZXIsIHV2czogTnVtYmVyQXJyYXlMaWtlLFxuXHRcdGxpZ2h0OiBDb2xvciwgZGFyazogQ29sb3IsIHR3b0NvbG9yOiBib29sZWFuKSB7XG5cblx0XHRsZXQgY2xpcE91dHB1dCA9IHRoaXMuY2xpcE91dHB1dCwgY2xpcHBlZFZlcnRpY2VzID0gdGhpcy5jbGlwcGVkVmVydGljZXM7XG5cdFx0bGV0IGNsaXBwZWRUcmlhbmdsZXMgPSB0aGlzLmNsaXBwZWRUcmlhbmdsZXM7XG5cdFx0bGV0IHBvbHlnb25zID0gdGhpcy5jbGlwcGluZ1BvbHlnb25zITtcblx0XHRsZXQgcG9seWdvbnNDb3VudCA9IHBvbHlnb25zLmxlbmd0aDtcblx0XHRsZXQgdmVydGV4U2l6ZSA9IHR3b0NvbG9yID8gMTIgOiA4O1xuXG5cdFx0bGV0IGluZGV4ID0gMDtcblx0XHRjbGlwcGVkVmVydGljZXMubGVuZ3RoID0gMDtcblx0XHRjbGlwcGVkVHJpYW5nbGVzLmxlbmd0aCA9IDA7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0cmlhbmdsZXNMZW5ndGg7IGkgKz0gMykge1xuXHRcdFx0bGV0IHZlcnRleE9mZnNldCA9IHRyaWFuZ2xlc1tpXSA8PCAxO1xuXHRcdFx0bGV0IHgxID0gdmVydGljZXNbdmVydGV4T2Zmc2V0XSwgeTEgPSB2ZXJ0aWNlc1t2ZXJ0ZXhPZmZzZXQgKyAxXTtcblx0XHRcdGxldCB1MSA9IHV2c1t2ZXJ0ZXhPZmZzZXRdLCB2MSA9IHV2c1t2ZXJ0ZXhPZmZzZXQgKyAxXTtcblxuXHRcdFx0dmVydGV4T2Zmc2V0ID0gdHJpYW5nbGVzW2kgKyAxXSA8PCAxO1xuXHRcdFx0bGV0IHgyID0gdmVydGljZXNbdmVydGV4T2Zmc2V0XSwgeTIgPSB2ZXJ0aWNlc1t2ZXJ0ZXhPZmZzZXQgKyAxXTtcblx0XHRcdGxldCB1MiA9IHV2c1t2ZXJ0ZXhPZmZzZXRdLCB2MiA9IHV2c1t2ZXJ0ZXhPZmZzZXQgKyAxXTtcblxuXHRcdFx0dmVydGV4T2Zmc2V0ID0gdHJpYW5nbGVzW2kgKyAyXSA8PCAxO1xuXHRcdFx0bGV0IHgzID0gdmVydGljZXNbdmVydGV4T2Zmc2V0XSwgeTMgPSB2ZXJ0aWNlc1t2ZXJ0ZXhPZmZzZXQgKyAxXTtcblx0XHRcdGxldCB1MyA9IHV2c1t2ZXJ0ZXhPZmZzZXRdLCB2MyA9IHV2c1t2ZXJ0ZXhPZmZzZXQgKyAxXTtcblxuXHRcdFx0Zm9yIChsZXQgcCA9IDA7IHAgPCBwb2x5Z29uc0NvdW50OyBwKyspIHtcblx0XHRcdFx0bGV0IHMgPSBjbGlwcGVkVmVydGljZXMubGVuZ3RoO1xuXHRcdFx0XHRpZiAodGhpcy5jbGlwKHgxLCB5MSwgeDIsIHkyLCB4MywgeTMsIHBvbHlnb25zW3BdLCBjbGlwT3V0cHV0KSkge1xuXHRcdFx0XHRcdGxldCBjbGlwT3V0cHV0TGVuZ3RoID0gY2xpcE91dHB1dC5sZW5ndGg7XG5cdFx0XHRcdFx0aWYgKGNsaXBPdXRwdXRMZW5ndGggPT0gMCkgY29udGludWU7XG5cdFx0XHRcdFx0bGV0IGQwID0geTIgLSB5MywgZDEgPSB4MyAtIHgyLCBkMiA9IHgxIC0geDMsIGQ0ID0geTMgLSB5MTtcblx0XHRcdFx0XHRsZXQgZCA9IDEgLyAoZDAgKiBkMiArIGQxICogKHkxIC0geTMpKTtcblxuXHRcdFx0XHRcdGxldCBjbGlwT3V0cHV0Q291bnQgPSBjbGlwT3V0cHV0TGVuZ3RoID4+IDE7XG5cdFx0XHRcdFx0bGV0IGNsaXBPdXRwdXRJdGVtcyA9IHRoaXMuY2xpcE91dHB1dDtcblx0XHRcdFx0XHRsZXQgY2xpcHBlZFZlcnRpY2VzSXRlbXMgPSBVdGlscy5zZXRBcnJheVNpemUoY2xpcHBlZFZlcnRpY2VzLCBzICsgY2xpcE91dHB1dENvdW50ICogdmVydGV4U2l6ZSk7XG5cdFx0XHRcdFx0Zm9yIChsZXQgaWkgPSAwOyBpaSA8IGNsaXBPdXRwdXRMZW5ndGg7IGlpICs9IDIsIHMgKz0gdmVydGV4U2l6ZSkge1xuXHRcdFx0XHRcdFx0bGV0IHggPSBjbGlwT3V0cHV0SXRlbXNbaWldLCB5ID0gY2xpcE91dHB1dEl0ZW1zW2lpICsgMV07XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzXSA9IHg7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMV0gPSB5O1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDJdID0gbGlnaHQucjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAzXSA9IGxpZ2h0Lmc7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgNF0gPSBsaWdodC5iO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDVdID0gbGlnaHQuYTtcblx0XHRcdFx0XHRcdGxldCBjMCA9IHggLSB4MywgYzEgPSB5IC0geTM7XG5cdFx0XHRcdFx0XHRsZXQgYSA9IChkMCAqIGMwICsgZDEgKiBjMSkgKiBkO1xuXHRcdFx0XHRcdFx0bGV0IGIgPSAoZDQgKiBjMCArIGQyICogYzEpICogZDtcblx0XHRcdFx0XHRcdGxldCBjID0gMSAtIGEgLSBiO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDZdID0gdTEgKiBhICsgdTIgKiBiICsgdTMgKiBjO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDddID0gdjEgKiBhICsgdjIgKiBiICsgdjMgKiBjO1xuXHRcdFx0XHRcdFx0aWYgKHR3b0NvbG9yKSB7XG5cdFx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyA4XSA9IGRhcmsucjtcblx0XHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDldID0gZGFyay5nO1xuXHRcdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTBdID0gZGFyay5iO1xuXHRcdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTFdID0gZGFyay5hO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHMgPSBjbGlwcGVkVHJpYW5nbGVzLmxlbmd0aDtcblx0XHRcdFx0XHRsZXQgY2xpcHBlZFRyaWFuZ2xlc0l0ZW1zID0gVXRpbHMuc2V0QXJyYXlTaXplKGNsaXBwZWRUcmlhbmdsZXMsIHMgKyAzICogKGNsaXBPdXRwdXRDb3VudCAtIDIpKTtcblx0XHRcdFx0XHRjbGlwT3V0cHV0Q291bnQtLTtcblx0XHRcdFx0XHRmb3IgKGxldCBpaSA9IDE7IGlpIDwgY2xpcE91dHB1dENvdW50OyBpaSsrLCBzICs9IDMpIHtcblx0XHRcdFx0XHRcdGNsaXBwZWRUcmlhbmdsZXNJdGVtc1tzXSA9IGluZGV4O1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFRyaWFuZ2xlc0l0ZW1zW3MgKyAxXSA9IChpbmRleCArIGlpKTtcblx0XHRcdFx0XHRcdGNsaXBwZWRUcmlhbmdsZXNJdGVtc1tzICsgMl0gPSAoaW5kZXggKyBpaSArIDEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpbmRleCArPSBjbGlwT3V0cHV0Q291bnQgKyAxO1xuXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0bGV0IGNsaXBwZWRWZXJ0aWNlc0l0ZW1zID0gVXRpbHMuc2V0QXJyYXlTaXplKGNsaXBwZWRWZXJ0aWNlcywgcyArIDMgKiB2ZXJ0ZXhTaXplKTtcblx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzXSA9IHgxO1xuXHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAxXSA9IHkxO1xuXHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyXSA9IGxpZ2h0LnI7XG5cdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDNdID0gbGlnaHQuZztcblx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgNF0gPSBsaWdodC5iO1xuXHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyA1XSA9IGxpZ2h0LmE7XG5cdFx0XHRcdFx0aWYgKCF0d29Db2xvcikge1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDZdID0gdTE7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgN10gPSB2MTtcblxuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDhdID0geDI7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgOV0gPSB5Mjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAxMF0gPSBsaWdodC5yO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDExXSA9IGxpZ2h0Lmc7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTJdID0gbGlnaHQuYjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAxM10gPSBsaWdodC5hO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDE0XSA9IHUyO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDE1XSA9IHYyO1xuXG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTZdID0geDM7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTddID0geTM7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMThdID0gbGlnaHQucjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAxOV0gPSBsaWdodC5nO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDIwXSA9IGxpZ2h0LmI7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMjFdID0gbGlnaHQuYTtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyMl0gPSB1Mztcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyM10gPSB2Mztcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDZdID0gdTE7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgN10gPSB2MTtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyA4XSA9IGRhcmsucjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyA5XSA9IGRhcmsuZztcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAxMF0gPSBkYXJrLmI7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTFdID0gZGFyay5hO1xuXG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTJdID0geDI7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTNdID0geTI7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTRdID0gbGlnaHQucjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAxNV0gPSBsaWdodC5nO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDE2XSA9IGxpZ2h0LmI7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMTddID0gbGlnaHQuYTtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAxOF0gPSB1Mjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAxOV0gPSB2Mjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyMF0gPSBkYXJrLnI7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMjFdID0gZGFyay5nO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDIyXSA9IGRhcmsuYjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyM10gPSBkYXJrLmE7XG5cblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyNF0gPSB4Mztcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyNV0gPSB5Mztcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyNl0gPSBsaWdodC5yO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDI3XSA9IGxpZ2h0Lmc7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMjhdID0gbGlnaHQuYjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAyOV0gPSBsaWdodC5hO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDMwXSA9IHUzO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDMxXSA9IHYzO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDMyXSA9IGRhcmsucjtcblx0XHRcdFx0XHRcdGNsaXBwZWRWZXJ0aWNlc0l0ZW1zW3MgKyAzM10gPSBkYXJrLmc7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMzRdID0gZGFyay5iO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDM1XSA9IGRhcmsuYTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRzID0gY2xpcHBlZFRyaWFuZ2xlcy5sZW5ndGg7XG5cdFx0XHRcdFx0bGV0IGNsaXBwZWRUcmlhbmdsZXNJdGVtcyA9IFV0aWxzLnNldEFycmF5U2l6ZShjbGlwcGVkVHJpYW5nbGVzLCBzICsgMyk7XG5cdFx0XHRcdFx0Y2xpcHBlZFRyaWFuZ2xlc0l0ZW1zW3NdID0gaW5kZXg7XG5cdFx0XHRcdFx0Y2xpcHBlZFRyaWFuZ2xlc0l0ZW1zW3MgKyAxXSA9IChpbmRleCArIDEpO1xuXHRcdFx0XHRcdGNsaXBwZWRUcmlhbmdsZXNJdGVtc1tzICsgMl0gPSAoaW5kZXggKyAyKTtcblx0XHRcdFx0XHRpbmRleCArPSAzO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGNsaXBUcmlhbmdsZXNVbnBhY2tlZCAodmVydGljZXM6IE51bWJlckFycmF5TGlrZSwgdHJpYW5nbGVzOiBOdW1iZXJBcnJheUxpa2UsIHRyaWFuZ2xlc0xlbmd0aDogbnVtYmVyLCB1dnM6IE51bWJlckFycmF5TGlrZSkge1xuXHRcdGxldCBjbGlwT3V0cHV0ID0gdGhpcy5jbGlwT3V0cHV0LCBjbGlwcGVkVmVydGljZXMgPSB0aGlzLmNsaXBwZWRWZXJ0aWNlcywgY2xpcHBlZFVWcyA9IHRoaXMuY2xpcHBlZFVWcztcblx0XHRsZXQgY2xpcHBlZFRyaWFuZ2xlcyA9IHRoaXMuY2xpcHBlZFRyaWFuZ2xlcztcblx0XHRsZXQgcG9seWdvbnMgPSB0aGlzLmNsaXBwaW5nUG9seWdvbnMhO1xuXHRcdGxldCBwb2x5Z29uc0NvdW50ID0gcG9seWdvbnMubGVuZ3RoO1xuXG5cdFx0bGV0IGluZGV4ID0gMDtcblx0XHRjbGlwcGVkVmVydGljZXMubGVuZ3RoID0gMDtcblx0XHRjbGlwcGVkVVZzLmxlbmd0aCA9IDA7XG5cdFx0Y2xpcHBlZFRyaWFuZ2xlcy5sZW5ndGggPSAwO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdHJpYW5nbGVzTGVuZ3RoOyBpICs9IDMpIHtcblx0XHRcdGxldCB2ZXJ0ZXhPZmZzZXQgPSB0cmlhbmdsZXNbaV0gPDwgMTtcblx0XHRcdGxldCB4MSA9IHZlcnRpY2VzW3ZlcnRleE9mZnNldF0sIHkxID0gdmVydGljZXNbdmVydGV4T2Zmc2V0ICsgMV07XG5cdFx0XHRsZXQgdTEgPSB1dnNbdmVydGV4T2Zmc2V0XSwgdjEgPSB1dnNbdmVydGV4T2Zmc2V0ICsgMV07XG5cblx0XHRcdHZlcnRleE9mZnNldCA9IHRyaWFuZ2xlc1tpICsgMV0gPDwgMTtcblx0XHRcdGxldCB4MiA9IHZlcnRpY2VzW3ZlcnRleE9mZnNldF0sIHkyID0gdmVydGljZXNbdmVydGV4T2Zmc2V0ICsgMV07XG5cdFx0XHRsZXQgdTIgPSB1dnNbdmVydGV4T2Zmc2V0XSwgdjIgPSB1dnNbdmVydGV4T2Zmc2V0ICsgMV07XG5cblx0XHRcdHZlcnRleE9mZnNldCA9IHRyaWFuZ2xlc1tpICsgMl0gPDwgMTtcblx0XHRcdGxldCB4MyA9IHZlcnRpY2VzW3ZlcnRleE9mZnNldF0sIHkzID0gdmVydGljZXNbdmVydGV4T2Zmc2V0ICsgMV07XG5cdFx0XHRsZXQgdTMgPSB1dnNbdmVydGV4T2Zmc2V0XSwgdjMgPSB1dnNbdmVydGV4T2Zmc2V0ICsgMV07XG5cblx0XHRcdGZvciAobGV0IHAgPSAwOyBwIDwgcG9seWdvbnNDb3VudDsgcCsrKSB7XG5cdFx0XHRcdGxldCBzID0gY2xpcHBlZFZlcnRpY2VzLmxlbmd0aDtcblx0XHRcdFx0aWYgKHRoaXMuY2xpcCh4MSwgeTEsIHgyLCB5MiwgeDMsIHkzLCBwb2x5Z29uc1twXSwgY2xpcE91dHB1dCkpIHtcblx0XHRcdFx0XHRsZXQgY2xpcE91dHB1dExlbmd0aCA9IGNsaXBPdXRwdXQubGVuZ3RoO1xuXHRcdFx0XHRcdGlmIChjbGlwT3V0cHV0TGVuZ3RoID09IDApIGNvbnRpbnVlO1xuXHRcdFx0XHRcdGxldCBkMCA9IHkyIC0geTMsIGQxID0geDMgLSB4MiwgZDIgPSB4MSAtIHgzLCBkNCA9IHkzIC0geTE7XG5cdFx0XHRcdFx0bGV0IGQgPSAxIC8gKGQwICogZDIgKyBkMSAqICh5MSAtIHkzKSk7XG5cblx0XHRcdFx0XHRsZXQgY2xpcE91dHB1dENvdW50ID0gY2xpcE91dHB1dExlbmd0aCA+PiAxO1xuXHRcdFx0XHRcdGxldCBjbGlwT3V0cHV0SXRlbXMgPSB0aGlzLmNsaXBPdXRwdXQ7XG5cdFx0XHRcdFx0bGV0IGNsaXBwZWRWZXJ0aWNlc0l0ZW1zID0gVXRpbHMuc2V0QXJyYXlTaXplKGNsaXBwZWRWZXJ0aWNlcywgcyArIGNsaXBPdXRwdXRDb3VudCAqIDIpO1xuXHRcdFx0XHRcdGxldCBjbGlwcGVkVVZzSXRlbXMgPSBVdGlscy5zZXRBcnJheVNpemUoY2xpcHBlZFVWcywgcyArIGNsaXBPdXRwdXRDb3VudCAqIDIpO1xuXHRcdFx0XHRcdGZvciAobGV0IGlpID0gMDsgaWkgPCBjbGlwT3V0cHV0TGVuZ3RoOyBpaSArPSAyLCBzICs9IDIpIHtcblx0XHRcdFx0XHRcdGxldCB4ID0gY2xpcE91dHB1dEl0ZW1zW2lpXSwgeSA9IGNsaXBPdXRwdXRJdGVtc1tpaSArIDFdO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbc10gPSB4O1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbcyArIDFdID0geTtcblx0XHRcdFx0XHRcdGxldCBjMCA9IHggLSB4MywgYzEgPSB5IC0geTM7XG5cdFx0XHRcdFx0XHRsZXQgYSA9IChkMCAqIGMwICsgZDEgKiBjMSkgKiBkO1xuXHRcdFx0XHRcdFx0bGV0IGIgPSAoZDQgKiBjMCArIGQyICogYzEpICogZDtcblx0XHRcdFx0XHRcdGxldCBjID0gMSAtIGEgLSBiO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFVWc0l0ZW1zW3NdID0gdTEgKiBhICsgdTIgKiBiICsgdTMgKiBjO1xuXHRcdFx0XHRcdFx0Y2xpcHBlZFVWc0l0ZW1zW3MgKyAxXSA9IHYxICogYSArIHYyICogYiArIHYzICogYztcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRzID0gY2xpcHBlZFRyaWFuZ2xlcy5sZW5ndGg7XG5cdFx0XHRcdFx0bGV0IGNsaXBwZWRUcmlhbmdsZXNJdGVtcyA9IFV0aWxzLnNldEFycmF5U2l6ZShjbGlwcGVkVHJpYW5nbGVzLCBzICsgMyAqIChjbGlwT3V0cHV0Q291bnQgLSAyKSk7XG5cdFx0XHRcdFx0Y2xpcE91dHB1dENvdW50LS07XG5cdFx0XHRcdFx0Zm9yIChsZXQgaWkgPSAxOyBpaSA8IGNsaXBPdXRwdXRDb3VudDsgaWkrKywgcyArPSAzKSB7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVHJpYW5nbGVzSXRlbXNbc10gPSBpbmRleDtcblx0XHRcdFx0XHRcdGNsaXBwZWRUcmlhbmdsZXNJdGVtc1tzICsgMV0gPSAoaW5kZXggKyBpaSk7XG5cdFx0XHRcdFx0XHRjbGlwcGVkVHJpYW5nbGVzSXRlbXNbcyArIDJdID0gKGluZGV4ICsgaWkgKyAxKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aW5kZXggKz0gY2xpcE91dHB1dENvdW50ICsgMTtcblxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGxldCBjbGlwcGVkVmVydGljZXNJdGVtcyA9IFV0aWxzLnNldEFycmF5U2l6ZShjbGlwcGVkVmVydGljZXMsIHMgKyAzICogMik7XG5cdFx0XHRcdFx0Y2xpcHBlZFZlcnRpY2VzSXRlbXNbc10gPSB4MTtcblx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMV0gPSB5MTtcblx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgMl0gPSB4Mjtcblx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgM10gPSB5Mjtcblx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgNF0gPSB4Mztcblx0XHRcdFx0XHRjbGlwcGVkVmVydGljZXNJdGVtc1tzICsgNV0gPSB5MztcblxuXHRcdFx0XHRcdGxldCBjbGlwcGVkVVZTSXRlbXMgPSBVdGlscy5zZXRBcnJheVNpemUoY2xpcHBlZFVWcywgcyArIDMgKiAyKTtcblx0XHRcdFx0XHRjbGlwcGVkVVZTSXRlbXNbc10gPSB1MTtcblx0XHRcdFx0XHRjbGlwcGVkVVZTSXRlbXNbcyArIDFdID0gdjE7XG5cdFx0XHRcdFx0Y2xpcHBlZFVWU0l0ZW1zW3MgKyAyXSA9IHUyO1xuXHRcdFx0XHRcdGNsaXBwZWRVVlNJdGVtc1tzICsgM10gPSB2Mjtcblx0XHRcdFx0XHRjbGlwcGVkVVZTSXRlbXNbcyArIDRdID0gdTM7XG5cdFx0XHRcdFx0Y2xpcHBlZFVWU0l0ZW1zW3MgKyA1XSA9IHYzO1xuXG5cdFx0XHRcdFx0cyA9IGNsaXBwZWRUcmlhbmdsZXMubGVuZ3RoO1xuXHRcdFx0XHRcdGxldCBjbGlwcGVkVHJpYW5nbGVzSXRlbXMgPSBVdGlscy5zZXRBcnJheVNpemUoY2xpcHBlZFRyaWFuZ2xlcywgcyArIDMpO1xuXHRcdFx0XHRcdGNsaXBwZWRUcmlhbmdsZXNJdGVtc1tzXSA9IGluZGV4O1xuXHRcdFx0XHRcdGNsaXBwZWRUcmlhbmdsZXNJdGVtc1tzICsgMV0gPSAoaW5kZXggKyAxKTtcblx0XHRcdFx0XHRjbGlwcGVkVHJpYW5nbGVzSXRlbXNbcyArIDJdID0gKGluZGV4ICsgMik7XG5cdFx0XHRcdFx0aW5kZXggKz0gMztcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKiBDbGlwcyB0aGUgaW5wdXQgdHJpYW5nbGUgYWdhaW5zdCB0aGUgY29udmV4LCBjbG9ja3dpc2UgY2xpcHBpbmcgYXJlYS4gSWYgdGhlIHRyaWFuZ2xlIGxpZXMgZW50aXJlbHkgd2l0aGluIHRoZSBjbGlwcGluZ1xuXHQgKiBhcmVhLCBmYWxzZSBpcyByZXR1cm5lZC4gVGhlIGNsaXBwaW5nIGFyZWEgbXVzdCBkdXBsaWNhdGUgdGhlIGZpcnN0IHZlcnRleCBhdCB0aGUgZW5kIG9mIHRoZSB2ZXJ0aWNlcyBsaXN0LiAqL1xuXHRjbGlwICh4MTogbnVtYmVyLCB5MTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyLCB4MzogbnVtYmVyLCB5MzogbnVtYmVyLCBjbGlwcGluZ0FyZWE6IEFycmF5PG51bWJlcj4sIG91dHB1dDogQXJyYXk8bnVtYmVyPikge1xuXHRcdGxldCBvcmlnaW5hbE91dHB1dCA9IG91dHB1dDtcblx0XHRsZXQgY2xpcHBlZCA9IGZhbHNlO1xuXG5cdFx0Ly8gQXZvaWQgY29weSBhdCB0aGUgZW5kLlxuXHRcdGxldCBpbnB1dDogQXJyYXk8bnVtYmVyPjtcblx0XHRpZiAoY2xpcHBpbmdBcmVhLmxlbmd0aCAlIDQgPj0gMikge1xuXHRcdFx0aW5wdXQgPSBvdXRwdXQ7XG5cdFx0XHRvdXRwdXQgPSB0aGlzLnNjcmF0Y2g7XG5cdFx0fSBlbHNlXG5cdFx0XHRpbnB1dCA9IHRoaXMuc2NyYXRjaDtcblxuXHRcdGlucHV0Lmxlbmd0aCA9IDA7XG5cdFx0aW5wdXQucHVzaCh4MSk7XG5cdFx0aW5wdXQucHVzaCh5MSk7XG5cdFx0aW5wdXQucHVzaCh4Mik7XG5cdFx0aW5wdXQucHVzaCh5Mik7XG5cdFx0aW5wdXQucHVzaCh4Myk7XG5cdFx0aW5wdXQucHVzaCh5Myk7XG5cdFx0aW5wdXQucHVzaCh4MSk7XG5cdFx0aW5wdXQucHVzaCh5MSk7XG5cdFx0b3V0cHV0Lmxlbmd0aCA9IDA7XG5cblx0XHRsZXQgY2xpcHBpbmdWZXJ0aWNlc0xhc3QgPSBjbGlwcGluZ0FyZWEubGVuZ3RoIC0gNDtcblx0XHRsZXQgY2xpcHBpbmdWZXJ0aWNlcyA9IGNsaXBwaW5nQXJlYTtcblx0XHRmb3IgKGxldCBpID0gMDsgOyBpICs9IDIpIHtcblx0XHRcdGxldCBlZGdlWCA9IGNsaXBwaW5nVmVydGljZXNbaV0sIGVkZ2VZID0gY2xpcHBpbmdWZXJ0aWNlc1tpICsgMV07XG5cdFx0XHRsZXQgZXggPSBlZGdlWCAtIGNsaXBwaW5nVmVydGljZXNbaSArIDJdLCBleSA9IGVkZ2VZIC0gY2xpcHBpbmdWZXJ0aWNlc1tpICsgM107XG5cblx0XHRcdGxldCBvdXRwdXRTdGFydCA9IG91dHB1dC5sZW5ndGg7XG5cdFx0XHRsZXQgaW5wdXRWZXJ0aWNlcyA9IGlucHV0O1xuXHRcdFx0Zm9yIChsZXQgaWkgPSAwLCBubiA9IGlucHV0Lmxlbmd0aCAtIDI7IGlpIDwgbm47KSB7XG5cdFx0XHRcdGxldCBpbnB1dFggPSBpbnB1dFZlcnRpY2VzW2lpXSwgaW5wdXRZID0gaW5wdXRWZXJ0aWNlc1tpaSArIDFdO1xuXHRcdFx0XHRpaSArPSAyO1xuXHRcdFx0XHRsZXQgaW5wdXRYMiA9IGlucHV0VmVydGljZXNbaWldLCBpbnB1dFkyID0gaW5wdXRWZXJ0aWNlc1tpaSArIDFdO1xuXHRcdFx0XHRsZXQgczIgPSBleSAqIChlZGdlWCAtIGlucHV0WDIpID4gZXggKiAoZWRnZVkgLSBpbnB1dFkyKTtcblx0XHRcdFx0bGV0IHMxID0gZXkgKiAoZWRnZVggLSBpbnB1dFgpIC0gZXggKiAoZWRnZVkgLSBpbnB1dFkpO1xuXHRcdFx0XHRpZiAoczEgPiAwKSB7XG5cdFx0XHRcdFx0aWYgKHMyKSB7IC8vIHYxIGluc2lkZSwgdjIgaW5zaWRlXG5cdFx0XHRcdFx0XHRvdXRwdXQucHVzaChpbnB1dFgyKTtcblx0XHRcdFx0XHRcdG91dHB1dC5wdXNoKGlucHV0WTIpO1xuXHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vIHYxIGluc2lkZSwgdjIgb3V0c2lkZVxuXHRcdFx0XHRcdGxldCBpeCA9IGlucHV0WDIgLSBpbnB1dFgsIGl5ID0gaW5wdXRZMiAtIGlucHV0WSwgdCA9IHMxIC8gKGl4ICogZXkgLSBpeSAqIGV4KTtcblx0XHRcdFx0XHRpZiAodCA+PSAwICYmIHQgPD0gMSkge1xuXHRcdFx0XHRcdFx0b3V0cHV0LnB1c2goaW5wdXRYICsgaXggKiB0KTtcblx0XHRcdFx0XHRcdG91dHB1dC5wdXNoKGlucHV0WSArIGl5ICogdCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdG91dHB1dC5wdXNoKGlucHV0WDIpO1xuXHRcdFx0XHRcdFx0b3V0cHV0LnB1c2goaW5wdXRZMik7XG5cdFx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gZWxzZSBpZiAoczIpIHsgLy8gdjEgb3V0c2lkZSwgdjIgaW5zaWRlXG5cdFx0XHRcdFx0bGV0IGl4ID0gaW5wdXRYMiAtIGlucHV0WCwgaXkgPSBpbnB1dFkyIC0gaW5wdXRZLCB0ID0gczEgLyAoaXggKiBleSAtIGl5ICogZXgpO1xuXHRcdFx0XHRcdGlmICh0ID49IDAgJiYgdCA8PSAxKSB7XG5cdFx0XHRcdFx0XHRvdXRwdXQucHVzaChpbnB1dFggKyBpeCAqIHQpO1xuXHRcdFx0XHRcdFx0b3V0cHV0LnB1c2goaW5wdXRZICsgaXkgKiB0KTtcblx0XHRcdFx0XHRcdG91dHB1dC5wdXNoKGlucHV0WDIpO1xuXHRcdFx0XHRcdFx0b3V0cHV0LnB1c2goaW5wdXRZMik7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdG91dHB1dC5wdXNoKGlucHV0WDIpO1xuXHRcdFx0XHRcdFx0b3V0cHV0LnB1c2goaW5wdXRZMik7XG5cdFx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0Y2xpcHBlZCA9IHRydWU7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChvdXRwdXRTdGFydCA9PSBvdXRwdXQubGVuZ3RoKSB7IC8vIEFsbCBlZGdlcyBvdXRzaWRlLlxuXHRcdFx0XHRvcmlnaW5hbE91dHB1dC5sZW5ndGggPSAwO1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblxuXHRcdFx0b3V0cHV0LnB1c2gob3V0cHV0WzBdKTtcblx0XHRcdG91dHB1dC5wdXNoKG91dHB1dFsxXSk7XG5cblx0XHRcdGlmIChpID09IGNsaXBwaW5nVmVydGljZXNMYXN0KSBicmVhaztcblx0XHRcdGxldCB0ZW1wID0gb3V0cHV0O1xuXHRcdFx0b3V0cHV0ID0gaW5wdXQ7XG5cdFx0XHRvdXRwdXQubGVuZ3RoID0gMDtcblx0XHRcdGlucHV0ID0gdGVtcDtcblx0XHR9XG5cblx0XHRpZiAob3JpZ2luYWxPdXRwdXQgIT0gb3V0cHV0KSB7XG5cdFx0XHRvcmlnaW5hbE91dHB1dC5sZW5ndGggPSAwO1xuXHRcdFx0Zm9yIChsZXQgaSA9IDAsIG4gPSBvdXRwdXQubGVuZ3RoIC0gMjsgaSA8IG47IGkrKylcblx0XHRcdFx0b3JpZ2luYWxPdXRwdXRbaV0gPSBvdXRwdXRbaV07XG5cdFx0fSBlbHNlXG5cdFx0XHRvcmlnaW5hbE91dHB1dC5sZW5ndGggPSBvcmlnaW5hbE91dHB1dC5sZW5ndGggLSAyO1xuXG5cdFx0cmV0dXJuIGNsaXBwZWQ7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIG1ha2VDbG9ja3dpc2UgKHBvbHlnb246IE51bWJlckFycmF5TGlrZSkge1xuXHRcdGxldCB2ZXJ0aWNlcyA9IHBvbHlnb247XG5cdFx0bGV0IHZlcnRpY2VzbGVuZ3RoID0gcG9seWdvbi5sZW5ndGg7XG5cblx0XHRsZXQgYXJlYSA9IHZlcnRpY2VzW3ZlcnRpY2VzbGVuZ3RoIC0gMl0gKiB2ZXJ0aWNlc1sxXSAtIHZlcnRpY2VzWzBdICogdmVydGljZXNbdmVydGljZXNsZW5ndGggLSAxXSwgcDF4ID0gMCwgcDF5ID0gMCwgcDJ4ID0gMCwgcDJ5ID0gMDtcblx0XHRmb3IgKGxldCBpID0gMCwgbiA9IHZlcnRpY2VzbGVuZ3RoIC0gMzsgaSA8IG47IGkgKz0gMikge1xuXHRcdFx0cDF4ID0gdmVydGljZXNbaV07XG5cdFx0XHRwMXkgPSB2ZXJ0aWNlc1tpICsgMV07XG5cdFx0XHRwMnggPSB2ZXJ0aWNlc1tpICsgMl07XG5cdFx0XHRwMnkgPSB2ZXJ0aWNlc1tpICsgM107XG5cdFx0XHRhcmVhICs9IHAxeCAqIHAyeSAtIHAyeCAqIHAxeTtcblx0XHR9XG5cdFx0aWYgKGFyZWEgPCAwKSByZXR1cm47XG5cblx0XHRmb3IgKGxldCBpID0gMCwgbGFzdFggPSB2ZXJ0aWNlc2xlbmd0aCAtIDIsIG4gPSB2ZXJ0aWNlc2xlbmd0aCA+PiAxOyBpIDwgbjsgaSArPSAyKSB7XG5cdFx0XHRsZXQgeCA9IHZlcnRpY2VzW2ldLCB5ID0gdmVydGljZXNbaSArIDFdO1xuXHRcdFx0bGV0IG90aGVyID0gbGFzdFggLSBpO1xuXHRcdFx0dmVydGljZXNbaV0gPSB2ZXJ0aWNlc1tvdGhlcl07XG5cdFx0XHR2ZXJ0aWNlc1tpICsgMV0gPSB2ZXJ0aWNlc1tvdGhlciArIDFdO1xuXHRcdFx0dmVydGljZXNbb3RoZXJdID0geDtcblx0XHRcdHZlcnRpY2VzW290aGVyICsgMV0gPSB5O1xuXHRcdH1cblx0fVxufVxuIl19
@@ -1,16 +1,16 @@
1
1
  /******************************************************************************
2
2
  * Spine Runtimes License Agreement
3
- * Last updated July 28, 2023. Replaces all prior versions.
3
+ * Last updated April 5, 2025. Replaces all prior versions.
4
4
  *
5
- * Copyright (c) 2013-2023, Esoteric Software LLC
5
+ * Copyright (c) 2013-2025, Esoteric Software LLC
6
6
  *
7
7
  * Integration of the Spine Runtimes into software or otherwise creating
8
8
  * derivative works of the Spine Runtimes is permitted under the terms and
9
9
  * conditions of Section 2 of the Spine Editor License Agreement:
10
10
  * http://esotericsoftware.com/spine-editor-license
11
11
  *
12
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
13
- * otherwise create derivative works of the Spine Runtimes (collectively,
12
+ * Otherwise, it is permitted to integrate the Spine Runtimes into software
13
+ * or otherwise create derivative works of the Spine Runtimes (collectively,
14
14
  * "Products"), provided that each user of the Products must obtain their own
15
15
  * Spine Editor license and redistribution of the Products in any form must
16
16
  * include this license and copyright notice.
@@ -23,8 +23,8 @@
23
23
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
24
24
  * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
25
25
  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
27
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
+ * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
28
  *****************************************************************************/
29
29
  import { Animation } from "./Animation";
30
30
  import { BoneData } from "./BoneData.js";