angular-odata 0.125.0 → 0.127.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/README.md +2 -2
  2. package/esm2022/lib/api.mjs +5 -4
  3. package/esm2022/lib/cache/storage.mjs +3 -3
  4. package/esm2022/lib/client.mjs +7 -7
  5. package/esm2022/lib/loaders.mjs +1 -1
  6. package/esm2022/lib/models/collection.mjs +220 -216
  7. package/esm2022/lib/models/model.mjs +49 -50
  8. package/esm2022/lib/models/options.mjs +149 -117
  9. package/esm2022/lib/module.mjs +20 -7
  10. package/esm2022/lib/options.mjs +2 -1
  11. package/esm2022/lib/resources/path/segments.mjs +35 -13
  12. package/esm2022/lib/resources/query/builder.mjs +17 -5
  13. package/esm2022/lib/resources/query/expressions/apply.mjs +169 -0
  14. package/esm2022/lib/resources/query/expressions/base.mjs +8 -3
  15. package/esm2022/lib/resources/query/expressions/compute.mjs +20 -5
  16. package/esm2022/lib/resources/query/expressions/count.mjs +27 -10
  17. package/esm2022/lib/resources/query/expressions/expand.mjs +36 -14
  18. package/esm2022/lib/resources/query/expressions/filter.mjs +33 -16
  19. package/esm2022/lib/resources/query/expressions/index.mjs +2 -1
  20. package/esm2022/lib/resources/query/expressions/orderby.mjs +32 -9
  21. package/esm2022/lib/resources/query/expressions/search.mjs +34 -15
  22. package/esm2022/lib/resources/query/expressions/select.mjs +17 -5
  23. package/esm2022/lib/resources/query/expressions/syntax.mjs +319 -32
  24. package/esm2022/lib/resources/query/handlers.mjs +90 -55
  25. package/esm2022/lib/resources/query/index.mjs +2 -1
  26. package/esm2022/lib/resources/query/options.mjs +95 -71
  27. package/esm2022/lib/resources/request.mjs +4 -3
  28. package/esm2022/lib/resources/resource.mjs +53 -24
  29. package/esm2022/lib/resources/responses/annotations.mjs +4 -1
  30. package/esm2022/lib/resources/responses/response.mjs +3 -3
  31. package/esm2022/lib/resources/types/batch.mjs +19 -17
  32. package/esm2022/lib/resources/types/count.mjs +7 -4
  33. package/esm2022/lib/resources/types/entity-set.mjs +3 -2
  34. package/esm2022/lib/resources/types/entity.mjs +5 -5
  35. package/esm2022/lib/resources/types/function.mjs +1 -9
  36. package/esm2022/lib/resources/types/navigation-property.mjs +4 -3
  37. package/esm2022/lib/resources/types/options.mjs +1 -1
  38. package/esm2022/lib/resources/types/property.mjs +12 -4
  39. package/esm2022/lib/resources/types/reference.mjs +4 -4
  40. package/esm2022/lib/schema/parsers/enum-type.mjs +14 -7
  41. package/esm2022/lib/schema/parsers/structured-type.mjs +56 -44
  42. package/esm2022/lib/schema/structured-type.mjs +13 -2
  43. package/esm2022/lib/services/base.mjs +4 -4
  44. package/esm2022/lib/services/factory.mjs +4 -4
  45. package/esm2022/lib/types.mjs +12 -1
  46. package/esm2022/lib/utils/http.mjs +8 -6
  47. package/fesm2022/angular-odata.mjs +8885 -8094
  48. package/fesm2022/angular-odata.mjs.map +1 -1
  49. package/lib/api.d.ts +2 -2
  50. package/lib/client.d.ts +1 -1
  51. package/lib/models/collection.d.ts +33 -24
  52. package/lib/models/model.d.ts +18 -9
  53. package/lib/models/options.d.ts +22 -17
  54. package/lib/module.d.ts +2 -1
  55. package/lib/options.d.ts +5 -0
  56. package/lib/resources/path/segments.d.ts +18 -11
  57. package/lib/resources/query/builder.d.ts +6 -5
  58. package/lib/resources/query/expressions/apply.d.ts +103 -0
  59. package/lib/resources/query/expressions/base.d.ts +6 -3
  60. package/lib/resources/query/expressions/compute.d.ts +15 -4
  61. package/lib/resources/query/expressions/count.d.ts +17 -6
  62. package/lib/resources/query/expressions/expand.d.ts +22 -11
  63. package/lib/resources/query/expressions/filter.d.ts +17 -6
  64. package/lib/resources/query/expressions/index.d.ts +1 -0
  65. package/lib/resources/query/expressions/orderby.d.ts +18 -6
  66. package/lib/resources/query/expressions/search.d.ts +15 -6
  67. package/lib/resources/query/expressions/select.d.ts +13 -4
  68. package/lib/resources/query/expressions/syntax.d.ts +138 -19
  69. package/lib/resources/query/handlers.d.ts +33 -10
  70. package/lib/resources/query/index.d.ts +1 -0
  71. package/lib/resources/query/options.d.ts +24 -13
  72. package/lib/resources/request.d.ts +3 -2
  73. package/lib/resources/resource.d.ts +15 -6
  74. package/lib/resources/responses/annotations.d.ts +1 -0
  75. package/lib/resources/responses/response.d.ts +2 -2
  76. package/lib/resources/types/batch.d.ts +9 -4
  77. package/lib/resources/types/count.d.ts +5 -1
  78. package/lib/resources/types/function.d.ts +0 -3
  79. package/lib/resources/types/options.d.ts +2 -1
  80. package/lib/resources/types/property.d.ts +2 -0
  81. package/lib/schema/parsers/enum-type.d.ts +14 -2
  82. package/lib/schema/parsers/structured-type.d.ts +1 -0
  83. package/lib/schema/structured-type.d.ts +2 -1
  84. package/lib/types.d.ts +11 -0
  85. package/lib/utils/http.d.ts +1 -1
  86. package/package.json +1 -1
@@ -18,6 +18,7 @@ export var QueryOption;
18
18
  QueryOption["select"] = "select";
19
19
  QueryOption["expand"] = "expand";
20
20
  QueryOption["compute"] = "compute";
21
+ QueryOption["apply"] = "apply";
21
22
  QueryOption["filter"] = "filter";
22
23
  QueryOption["search"] = "search";
23
24
  QueryOption["transform"] = "transform";
@@ -98,10 +99,20 @@ export var EdmType;
98
99
  //Edm.GeometryCollection Collection of arbitrary Geometry values
99
100
  EdmType["GeometryCollection"] = "Edm.GeometryCollection";
100
101
  })(EdmType || (EdmType = {}));
102
+ export var JsonType;
103
+ (function (JsonType) {
104
+ JsonType["string"] = "string";
105
+ JsonType["number"] = "number";
106
+ JsonType["integer"] = "integer";
107
+ JsonType["object"] = "object";
108
+ JsonType["array"] = "array";
109
+ JsonType["boolean"] = "boolean";
110
+ JsonType["null"] = "null";
111
+ })(JsonType || (JsonType = {}));
101
112
  export const NONE_PARSER = {
102
113
  deserialize: (value) => value,
103
114
  serialize: (value) => value,
104
115
  encode: (value) => value,
105
116
  };
106
117
  //#endregion
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUEsTUFBTSxDQUFOLElBQVksV0FhWDtBQWJELFdBQVksV0FBVztJQUNyQiw4QkFBZSxDQUFBO0lBQ2Ysb0NBQXFCLENBQUE7SUFDckIsc0NBQXVCLENBQUE7SUFDdkIsc0NBQXVCLENBQUE7SUFDdkIsNEJBQWEsQ0FBQTtJQUNiLG9DQUFxQixDQUFBO0lBQ3JCLHdEQUF5QyxDQUFBO0lBQ3pDLHNDQUF1QixDQUFBO0lBQ3ZCLDhCQUFlLENBQUE7SUFDZiw4QkFBZSxDQUFBO0lBQ2Ysb0NBQXFCLENBQUE7SUFDckIsZ0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQWJXLFdBQVcsS0FBWCxXQUFXLFFBYXRCO0FBRUQsTUFBTSxDQUFOLElBQVksV0FjWDtBQWRELFdBQVksV0FBVztJQUNyQixnQ0FBaUIsQ0FBQTtJQUNqQixnQ0FBaUIsQ0FBQTtJQUNqQixrQ0FBbUIsQ0FBQTtJQUNuQixnQ0FBaUIsQ0FBQTtJQUNqQixnQ0FBaUIsQ0FBQTtJQUNqQixzQ0FBdUIsQ0FBQTtJQUN2QixrQ0FBbUIsQ0FBQTtJQUNuQiwwQkFBVyxDQUFBO0lBQ1gsNEJBQWEsQ0FBQTtJQUNiLHNDQUF1QixDQUFBO0lBQ3ZCLGdDQUFpQixDQUFBO0lBQ2pCLGdDQUFpQixDQUFBO0lBQ2pCLDhCQUFlLENBQUE7QUFDakIsQ0FBQyxFQWRXLFdBQVcsS0FBWCxXQUFXLFFBY3RCO0FBQ0QsTUFBTSxDQUFOLElBQVksT0FtRVg7QUFuRUQsV0FBWSxPQUFPO0lBQ2pCLDhDQUE4QztJQUM5Qyw0QkFBaUIsQ0FBQTtJQUNqQixpQ0FBaUM7SUFDakMsOEJBQW1CLENBQUE7SUFDbkIseUNBQXlDO0lBQ3pDLGdDQUFxQixDQUFBO0lBQ3JCLGlDQUFpQztJQUNqQyxrQ0FBdUIsQ0FBQTtJQUN2QixpQ0FBaUM7SUFDakMsNEJBQWlCLENBQUE7SUFDakIsZ0NBQWdDO0lBQ2hDLDhCQUFtQixDQUFBO0lBQ25CLGlDQUFpQztJQUNqQyw4QkFBbUIsQ0FBQTtJQUNuQixpQ0FBaUM7SUFDakMsOEJBQW1CLENBQUE7SUFDbkIsMENBQTBDO0lBQzFDLDRCQUFpQixDQUFBO0lBQ2pCLHNEQUFzRDtJQUN0RCxzQ0FBMkIsQ0FBQTtJQUMzQiwyRUFBMkU7SUFDM0UsZ0RBQXFDLENBQUE7SUFDckMsd0VBQXdFO0lBQ3hFLG9DQUF5QixDQUFBO0lBQ3pCLDJEQUEyRDtJQUMzRCxrQ0FBdUIsQ0FBQTtJQUN2QiwyRUFBMkU7SUFDM0UsZ0NBQXFCLENBQUE7SUFDckIseUVBQXlFO0lBQ3pFLGdDQUFxQixDQUFBO0lBQ3JCLHdCQUF3QjtJQUN4QixnQ0FBcUIsQ0FBQTtJQUNyQiwrQkFBK0I7SUFDL0IsZ0NBQXFCLENBQUE7SUFDckIsMERBQTBEO0lBQzFELHNDQUEyQixDQUFBO0lBQzNCLCtEQUErRDtJQUMvRCxnREFBcUMsQ0FBQTtJQUNyQyx3RUFBd0U7SUFDeEUsMERBQStDLENBQUE7SUFDL0MsaUVBQWlFO0lBQ2pFLG9EQUF5QyxDQUFBO0lBQ3pDLGlGQUFpRjtJQUNqRiwwREFBK0MsQ0FBQTtJQUMvQyw0RkFBNEY7SUFDNUYsb0VBQXlELENBQUE7SUFDekQscUZBQXFGO0lBQ3JGLDhEQUFtRCxDQUFBO0lBQ25ELGtFQUFrRTtJQUNsRSwwREFBK0MsQ0FBQTtJQUMvQyx3REFBd0Q7SUFDeEQsb0NBQXlCLENBQUE7SUFDekIsMkRBQTJEO0lBQzNELDhDQUFtQyxDQUFBO0lBQ25DLHNFQUFzRTtJQUN0RSx3REFBNkMsQ0FBQTtJQUM3QywrREFBK0Q7SUFDL0Qsa0RBQXVDLENBQUE7SUFDdkMsK0VBQStFO0lBQy9FLHdEQUE2QyxDQUFBO0lBQzdDLDBGQUEwRjtJQUMxRixrRUFBdUQsQ0FBQTtJQUN2RCxtRkFBbUY7SUFDbkYsNERBQWlELENBQUE7SUFDakQsZ0VBQWdFO0lBQ2hFLHdEQUE2QyxDQUFBO0FBQy9DLENBQUMsRUFuRVcsT0FBTyxLQUFQLE9BQU8sUUFtRWxCO0FBK0VELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixXQUFXLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUs7SUFDbEMsU0FBUyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLO0lBQ2hDLE1BQU0sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsS0FBSztDQUNmLENBQUM7QUF3R2pCLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIE9EYXRhVmVyc2lvbiA9ICcyLjAnIHwgJzMuMCcgfCAnNC4wJztcbmV4cG9ydCB0eXBlIEZldGNoUG9saWN5ID1cbiAgfCAnY2FjaGUtZmlyc3QnXG4gIHwgJ2NhY2hlLWFuZC1uZXR3b3JrJ1xuICB8ICduZXR3b3JrLW9ubHknXG4gIHwgJ25vLWNhY2hlJ1xuICB8ICdjYWNoZS1vbmx5JztcbmV4cG9ydCB0eXBlIE9EYXRhTWV0YWRhdGFUeXBlID0gJ21pbmltYWwnIHwgJ2Z1bGwnIHwgJ25vbmUnO1xuZXhwb3J0IHR5cGUgQ2FjaGVDYWNoZWFiaWxpdHkgPSAncHVibGljJyB8ICdwcml2YXRlJyB8ICduby1jYWNoZScgfCAnbm8tc3RvcmUnO1xuXG5leHBvcnQgZW51bSBQYXRoU2VnbWVudCB7XG4gIGJhdGNoID0gJ2JhdGNoJyxcbiAgbWV0YWRhdGEgPSAnbWV0YWRhdGEnLFxuICBlbnRpdHlTZXQgPSAnZW50aXR5U2V0JyxcbiAgc2luZ2xldG9uID0gJ3NpbmdsZXRvbicsXG4gIHR5cGUgPSAndHlwZScsXG4gIHByb3BlcnR5ID0gJ3Byb3BlcnR5JyxcbiAgbmF2aWdhdGlvblByb3BlcnR5ID0gJ25hdmlnYXRpb25Qcm9wZXJ0eScsXG4gIHJlZmVyZW5jZSA9ICdyZWZlcmVuY2UnLFxuICB2YWx1ZSA9ICd2YWx1ZScsXG4gIGNvdW50ID0gJ2NvdW50JyxcbiAgZnVuY3Rpb24gPSAnZnVuY3Rpb24nLFxuICBhY3Rpb24gPSAnYWN0aW9uJyxcbn1cblxuZXhwb3J0IGVudW0gUXVlcnlPcHRpb24ge1xuICBzZWxlY3QgPSAnc2VsZWN0JyxcbiAgZXhwYW5kID0gJ2V4cGFuZCcsXG4gIGNvbXB1dGUgPSAnY29tcHV0ZScsXG4gIGZpbHRlciA9ICdmaWx0ZXInLFxuICBzZWFyY2ggPSAnc2VhcmNoJyxcbiAgdHJhbnNmb3JtID0gJ3RyYW5zZm9ybScsXG4gIG9yZGVyQnkgPSAnb3JkZXJCeScsXG4gIHRvcCA9ICd0b3AnLFxuICBza2lwID0gJ3NraXAnLFxuICBza2lwdG9rZW4gPSAnc2tpcHRva2VuJyxcbiAgZm9ybWF0ID0gJ2Zvcm1hdCcsXG4gIGxldmVscyA9ICdsZXZlbHMnLFxuICBjb3VudCA9ICdjb3VudCcsXG59XG5leHBvcnQgZW51bSBFZG1UeXBlIHtcbiAgLy9FZG0uR3VpZCAxNi1ieXRlICgxMjgtYml0KSB1bmlxdWUgaWRlbnRpZmllclxuICBHdWlkID0gJ0VkbS5HdWlkJyxcbiAgLy9FZG0uSW50MTYgU2lnbmVkIDE2LWJpdCBpbnRlZ2VyXG4gIEludDE2ID0gJ0VkbS5JbnQxNicsXG4gIC8vRWRtLlN0cmluZyBTZXF1ZW5jZSBvZiBVVEYtOCBjaGFyYWN0ZXJzXG4gIFN0cmluZyA9ICdFZG0uU3RyaW5nJyxcbiAgLy9FZG0uQm9vbGVhbiBCaW5hcnktdmFsdWVkIGxvZ2ljXG4gIEJvb2xlYW4gPSAnRWRtLkJvb2xlYW4nLFxuICAvL0VkbS5CeXRlIFVuc2lnbmVkIDgtYml0IGludGVnZXJcbiAgQnl0ZSA9ICdFZG0uQnl0ZScsXG4gIC8vRWRtLlNCeXRlIFNpZ25lZCA4LWJpdCBpbnRlZ2VyXG4gIFNCeXRlID0gJ0VkbS5TQnl0ZScsXG4gIC8vRWRtLkludDMyIFNpZ25lZCAxNi1iaXQgaW50ZWdlclxuICBJbnQzMiA9ICdFZG0uSW50MzInLFxuICAvL0VkbS5JbnQ2NCBTaWduZWQgMTYtYml0IGludGVnZXJcbiAgSW50NjQgPSAnRWRtLkludDY0JyxcbiAgLy9FZG0uRGF0ZSBEYXRlIHdpdGhvdXQgYSB0aW1lLXpvbmUgb2Zmc2V0XG4gIERhdGUgPSAnRWRtLkRhdGUnLFxuICAvL0VkbS5UaW1lT2ZEYXkgQ2xvY2sgdGltZSAwMDowMC0yMzo1OTo1OS45OTk5OTk5OTk5OTlcbiAgVGltZU9mRGF5ID0gJ0VkbS5UaW1lT2ZEYXknLFxuICAvL0VkbS5EYXRlVGltZU9mZnNldCBEYXRlIGFuZCB0aW1lIHdpdGggYSB0aW1lLXpvbmUgb2Zmc2V0LCBubyBsZWFwIHNlY29uZHNcbiAgRGF0ZVRpbWVPZmZzZXQgPSAnRWRtLkRhdGVUaW1lT2Zmc2V0JyxcbiAgLy9FZG0uRHVyYXRpb24gU2lnbmVkIGR1cmF0aW9uIGluIGRheXMsIGhvdXJzLCBtaW51dGVzLCBhbmQgKHN1YilzZWNvbmRzXG4gIER1cmF0aW9uID0gJ0VkbS5EdXJhdGlvbicsXG4gIC8vRWRtLkRlY2ltYWwgTnVtZXJpYyB2YWx1ZXMgd2l0aCBmaXhlZCBwcmVjaXNpb24gYW5kIHNjYWxlXG4gIERlY2ltYWwgPSAnRWRtLkRlY2ltYWwnLFxuICAvL0VkbS5Eb3VibGUgSUVFRSA3NTQgYmluYXJ5NjQgZmxvYXRpbmctcG9pbnQgbnVtYmVyICgxNS0xNyBkZWNpbWFsIGRpZ2l0cylcbiAgRG91YmxlID0gJ0VkbS5Eb3VibGUnLFxuICAvL0VkbS5TaW5nbGUgSUVFRSA3NTQgYmluYXJ5MzIgZmxvYXRpbmctcG9pbnQgbnVtYmVyICg2LTkgZGVjaW1hbCBkaWdpdHMpXG4gIFNpbmdsZSA9ICdFZG0uU2luZ2xlJyxcbiAgLy9FZG0uQmluYXJ5IEJpbmFyeSBkYXRhXG4gIEJpbmFyeSA9ICdFZG0uQmluYXJ5JyxcbiAgLy9FZG0uU3RyZWFtIEJpbmFyeSBkYXRhIHN0cmVhbVxuICBTdHJlYW0gPSAnRWRtLlN0cmVhbScsXG4gIC8vRWRtLkdlb2dyYXBoeSBBYnN0cmFjdCBiYXNlIHR5cGUgZm9yIGFsbCBHZW9ncmFwaHkgdHlwZXNcbiAgR2VvZ3JhcGh5ID0gJ0VkbS5HZW9ncmFwaHknLFxuICAvL0VkbS5HZW9ncmFwaHlQb2ludCBBIHBvaW50IGluIGEgcm91bmQtZWFydGggY29vcmRpbmF0ZSBzeXN0ZW1cbiAgR2VvZ3JhcGh5UG9pbnQgPSAnRWRtLkdlb2dyYXBoeVBvaW50JyxcbiAgLy9FZG0uR2VvZ3JhcGh5TGluZVN0cmluZyBMaW5lIHN0cmluZyBpbiBhIHJvdW5kLWVhcnRoIGNvb3JkaW5hdGUgc3lzdGVtXG4gIEdlb2dyYXBoeUxpbmVTdHJpbmcgPSAnRWRtLkdlb2dyYXBoeUxpbmVTdHJpbmcnLFxuICAvL0VkbS5HZW9ncmFwaHlQb2x5Z29uIFBvbHlnb24gaW4gYSByb3VuZC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuICBHZW9ncmFwaHlQb2x5Z29uID0gJ0VkbS5HZW9ncmFwaHlQb2x5Z29uJyxcbiAgLy9FZG0uR2VvZ3JhcGh5TXVsdGlQb2ludCBDb2xsZWN0aW9uIG9mIHBvaW50cyBpbiBhIHJvdW5kLWVhcnRoIGNvb3JkaW5hdGUgc3lzdGVtXG4gIEdlb2dyYXBoeU11bHRpUG9pbnQgPSAnRWRtLkdlb2dyYXBoeU11bHRpUG9pbnQnLFxuICAvL0VkbS5HZW9ncmFwaHlNdWx0aUxpbmVTdHJpbmcgQ29sbGVjdGlvbiBvZiBsaW5lIHN0cmluZ3MgaW4gYSByb3VuZC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuICBHZW9ncmFwaHlNdWx0aUxpbmVTdHJpbmcgPSAnRWRtLkdlb2dyYXBoeU11bHRpTGluZVN0cmluZycsXG4gIC8vRWRtLkdlb2dyYXBoeU11bHRpUG9seWdvbiBDb2xsZWN0aW9uIG9mIHBvbHlnb25zIGluIGEgcm91bmQtZWFydGggY29vcmRpbmF0ZSBzeXN0ZW1cbiAgR2VvZ3JhcGh5TXVsdGlQb2x5Z29uID0gJ0VkbS5HZW9ncmFwaHlNdWx0aVBvbHlnb24nLFxuICAvL0VkbS5HZW9ncmFwaHlDb2xsZWN0aW9uIENvbGxlY3Rpb24gb2YgYXJiaXRyYXJ5IEdlb2dyYXBoeSB2YWx1ZXNcbiAgR2VvZ3JhcGh5Q29sbGVjdGlvbiA9ICdFZG0uR2VvZ3JhcGh5Q29sbGVjdGlvbicsXG4gIC8vRWRtLkdlb21ldHJ5IEFic3RyYWN0IGJhc2UgdHlwZSBmb3IgYWxsIEdlb21ldHJ5IHR5cGVzXG4gIEdlb21ldHJ5ID0gJ0VkbS5HZW9tZXRyeScsXG4gIC8vRWRtLkdlb21ldHJ5UG9pbnQgUG9pbnQgaW4gYSBmbGF0LWVhcnRoIGNvb3JkaW5hdGUgc3lzdGVtXG4gIEdlb21ldHJ5UG9pbnQgPSAnRWRtLkdlb21ldHJ5UG9pbnQnLFxuICAvL0VkbS5HZW9tZXRyeUxpbmVTdHJpbmcgTGluZSBzdHJpbmcgaW4gYSBmbGF0LWVhcnRoIGNvb3JkaW5hdGUgc3lzdGVtXG4gIEdlb21ldHJ5TGluZVN0cmluZyA9ICdFZG0uR2VvbWV0cnlMaW5lU3RyaW5nJyxcbiAgLy9FZG0uR2VvbWV0cnlQb2x5Z29uIFBvbHlnb24gaW4gYSBmbGF0LWVhcnRoIGNvb3JkaW5hdGUgc3lzdGVtXG4gIEdlb21ldHJ5UG9seWdvbiA9ICdFZG0uR2VvbWV0cnlQb2x5Z29uJyxcbiAgLy9FZG0uR2VvbWV0cnlNdWx0aVBvaW50IENvbGxlY3Rpb24gb2YgcG9pbnRzIGluIGEgZmxhdC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuICBHZW9tZXRyeU11bHRpUG9pbnQgPSAnRWRtLkdlb21ldHJ5TXVsdGlQb2ludCcsXG4gIC8vRWRtLkdlb21ldHJ5TXVsdGlMaW5lU3RyaW5nIENvbGxlY3Rpb24gb2YgbGluZSBzdHJpbmdzIGluIGEgZmxhdC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuICBHZW9tZXRyeU11bHRpTGluZVN0cmluZyA9ICdFZG0uR2VvbWV0cnlNdWx0aUxpbmVTdHJpbmcnLFxuICAvL0VkbS5HZW9tZXRyeU11bHRpUG9seWdvbiBDb2xsZWN0aW9uIG9mIHBvbHlnb25zIGluIGEgZmxhdC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuICBHZW9tZXRyeU11bHRpUG9seWdvbiA9ICdFZG0uR2VvbWV0cnlNdWx0aVBvbHlnb24nLFxuICAvL0VkbS5HZW9tZXRyeUNvbGxlY3Rpb24gQ29sbGVjdGlvbiBvZiBhcmJpdHJhcnkgR2VvbWV0cnkgdmFsdWVzXG4gIEdlb21ldHJ5Q29sbGVjdGlvbiA9ICdFZG0uR2VvbWV0cnlDb2xsZWN0aW9uJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlPcHRpb25zIHtcbiAgdmVyc2lvbj86IE9EYXRhVmVyc2lvbjtcbiAgcGFyYW1zPzogeyBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH07XG4gIGhlYWRlcnM/OiB7IFtwYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfTtcbiAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcbiAgLy9IZWFkZXJzXG4gIGFjY2VwdD86IHtcbiAgICBleHBvbmVudGlhbERlY2ltYWxzPzogYm9vbGVhbjtcbiAgICBtZXRhZGF0YT86IE9EYXRhTWV0YWRhdGFUeXBlO1xuICAgIGllZWU3NTRDb21wYXRpYmxlPzogYm9vbGVhbjtcbiAgICBzdHJlYW1pbmc/OiBib29sZWFuO1xuICB9O1xuICBldGFnPzoge1xuICAgIGlmTWF0Y2g/OiBib29sZWFuO1xuICAgIGlmTm9uZU1hdGNoPzogYm9vbGVhbjtcbiAgfTtcbiAgcHJlZmVyPzoge1xuICAgIG1heFBhZ2VTaXplPzogbnVtYmVyO1xuICAgIHJldHVybj86ICdyZXByZXNlbnRhdGlvbicgfCAnbWluaW1hbCc7XG4gICAgY29udGludWVPbkVycm9yPzogYm9vbGVhbjtcbiAgICBpbmNsdWRlQW5ub3RhdGlvbnM/OiBzdHJpbmc7XG4gIH07XG4gIHN0cmlwTWV0YWRhdGE/OiBPRGF0YU1ldGFkYXRhVHlwZTtcbiAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgYm9keVF1ZXJ5T3B0aW9ucz86IFF1ZXJ5T3B0aW9uW107XG4gIHN0cmluZ0FzRW51bT86IGJvb2xlYW47XG4gIC8vaHR0cHM6Ly9naXRodWIuY29tL09EYXRhL1dlYkFwaS9pc3N1ZXMvMTk3NFxuICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9PRGF0YS9XZWJBcGkvaXNzdWVzLzE2NDdcbiAgZGVsZXRlUmVmQnk/OiAncGF0aCcgfCAnaWQnO1xuICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9PRGF0YS9Bc3BOZXRDb3JlT0RhdGEvaXNzdWVzLzE3MVxuICBub25QYXJlbnRoZXNpc0ZvckVtcHR5UGFyYW1ldGVyRnVuY3Rpb24/OiBib29sZWFuO1xuICBqc29uQmF0Y2hGb3JtYXQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlck9wdGlvbnMge1xuICB2ZXJzaW9uPzogT0RhdGFWZXJzaW9uO1xuICBleHBvbmVudGlhbERlY2ltYWxzPzogYm9vbGVhbjtcbiAgbWV0YWRhdGE/OiBPRGF0YU1ldGFkYXRhVHlwZTtcbiAgaWVlZTc1NENvbXBhdGlibGU/OiBib29sZWFuO1xuICBzdHJlYW1pbmc/OiBib29sZWFuO1xuICBzdHJpbmdBc0VudW0/OiBib29sZWFuO1xuICBkZWxldGVSZWZCeT86ICdwYXRoJyB8ICdpZCc7XG4gIG5vblBhcmVudGhlc2lzRm9yRW1wdHlQYXJhbWV0ZXJGdW5jdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2VPcHRpb25zIGV4dGVuZHMgUGFyc2VyT3B0aW9ucyB7XG4gIGNhY2hlYWJpbGl0eT86IENhY2hlQ2FjaGVhYmlsaXR5O1xuICBtYXhBZ2U/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RydWN0dXJlZFR5cGVGaWVsZE9wdGlvbnMgZXh0ZW5kcyBQYXJzZXJPcHRpb25zIHtcbiAgZmllbGQ6IFN0cnVjdHVyZWRUeXBlRmllbGRDb25maWc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VyPFQ+IHtcbiAgLy8gRGVzZXJpYWxpemUgdmFsdWUvcyBmcm9tIHJlcXVlc3QgYm9keS5cbiAgZGVzZXJpYWxpemUoXG4gICAgdmFsdWU6IGFueSxcbiAgICBvcHRpb25zPzogUGFyc2VyT3B0aW9ucyB8IFN0cnVjdHVyZWRUeXBlRmllbGRPcHRpb25zLFxuICApOiBUO1xuICAvLyBTZXJpYWxpemUgdmFsdWUvcyBmb3IgcmVxdWVzdCBib2R5LlxuICBzZXJpYWxpemUoXG4gICAgdmFsdWU6IGFueSxcbiAgICBvcHRpb25zPzogUGFyc2VyT3B0aW9ucyB8IFN0cnVjdHVyZWRUeXBlRmllbGRPcHRpb25zLFxuICApOiBhbnk7XG4gIC8vRW5jb2RlIHZhbHVlL3MgZm9yIFVSTCBwYXJhbWV0ZXIgb3IgcXVlcnktc3RyaW5nLlxuICBlbmNvZGUodmFsdWU6IGFueSwgb3B0aW9ucz86IFBhcnNlck9wdGlvbnMgfCBTdHJ1Y3R1cmVkVHlwZUZpZWxkT3B0aW9ucyk6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWVsZFBhcnNlcjxUPiBleHRlbmRzIFBhcnNlcjxUPiB7XG4gIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgZGVmYXVsdD86IGFueTtcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBwcmVjaXNpb24/OiBudW1iZXI7XG4gIHNjYWxlPzogbnVtYmVyIHwgJ3ZhcmlhYmxlJztcbn1cblxuZXhwb3J0IGNvbnN0IE5PTkVfUEFSU0VSID0ge1xuICBkZXNlcmlhbGl6ZTogKHZhbHVlOiBhbnkpID0+IHZhbHVlLFxuICBzZXJpYWxpemU6ICh2YWx1ZTogYW55KSA9PiB2YWx1ZSxcbiAgZW5jb2RlOiAodmFsdWU6IGFueSkgPT4gdmFsdWUsXG59IGFzIFBhcnNlcjxhbnk+O1xuXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlIHtcbiAgcHV0PFQ+KGtleTogc3RyaW5nLCBwYXlsb2FkOiBULCAuLi5vcHRzOiBhbnlbXSk6IHZvaWQ7XG4gIGdldDxUPihrZXk6IHN0cmluZywgLi4ub3B0czogYW55W10pOiBUIHwgdW5kZWZpbmVkO1xufVxuXG4vLyNyZWdpb24gQ29uZmlnc1xuZXhwb3J0IHR5cGUgQXBpQ29uZmlnID0ge1xuICBzZXJ2aWNlUm9vdFVybDogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogT0RhdGFWZXJzaW9uO1xuICBkZWZhdWx0PzogYm9vbGVhbjtcbiAgY3JlYXRpb24/OiBEYXRlO1xuICBjYWNoZT86IENhY2hlO1xuICBlcnJvckhhbmRsZXI/OiAoZXJyb3I6IGFueSwgY2F1Z2h0OiBPYnNlcnZhYmxlPGFueT4pID0+IE9ic2VydmFibGU8bmV2ZXI+O1xuICBvcHRpb25zPzogQXBpT3B0aW9ucztcbiAgcGFyc2Vycz86IHsgW3R5cGU6IHN0cmluZ106IFBhcnNlcjxhbnk+IH07XG4gIHNjaGVtYXM/OiBTY2hlbWFDb25maWdbXTtcbn07XG5leHBvcnQgdHlwZSBBbm5vdGF0aW9uQ29uZmlnID0ge1xuICB0ZXJtOiBzdHJpbmc7XG4gIHN0cmluZz86IHN0cmluZztcbiAgYm9vbD86IGJvb2xlYW47XG4gIGludD86IG51bWJlcjtcbiAgcGVybWlzc2lvbnM/OiBzdHJpbmdbXTtcbiAgcHJvcGVydGllcz86IHN0cmluZ1tdO1xufTtcbmV4cG9ydCB0eXBlIFNjaGVtYUNvbmZpZyA9IHtcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIGFsaWFzPzogc3RyaW5nO1xuICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25Db25maWdbXTtcbiAgZW51bXM/OiBFbnVtVHlwZUNvbmZpZzxhbnk+W107XG4gIGVudGl0aWVzPzogU3RydWN0dXJlZFR5cGVDb25maWc8YW55PltdO1xuICBjYWxsYWJsZXM/OiBDYWxsYWJsZUNvbmZpZ1tdO1xuICBjb250YWluZXJzPzogRW50aXR5Q29udGFpbmVyQ29uZmlnW107XG59O1xuXG5leHBvcnQgdHlwZSBFbnRpdHlDb250YWluZXJDb25maWcgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uQ29uZmlnW107XG4gIGVudGl0eVNldHM/OiBFbnRpdHlTZXRDb25maWdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEVudW1UeXBlRmllbGRDb25maWc8RT4gPSB7XG4gIHZhbHVlOiBFO1xuICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25Db25maWdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEVudW1UeXBlQ29uZmlnPEU+ID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGZsYWdzPzogYm9vbGVhbjtcbiAgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uQ29uZmlnW107XG4gIG1lbWJlcnM6IHsgW25hbWU6IHN0cmluZ106IEUgfSB8IHsgW3ZhbHVlOiBudW1iZXJdOiBzdHJpbmcgfTtcbiAgZmllbGRzOiB7IFttZW1iZXI6IHN0cmluZ106IEVudW1UeXBlRmllbGRDb25maWc8RT4gfTtcbn07XG5cbmV4cG9ydCB0eXBlIFN0cnVjdHVyZWRUeXBlRmllbGRDb25maWcgPSB7XG4gIHR5cGU6IHN0cmluZztcbiAgZGVmYXVsdD86IGFueTtcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBrZXk/OiBib29sZWFuO1xuICBjb2xsZWN0aW9uPzogYm9vbGVhbjtcbiAgbnVsbGFibGU/OiBib29sZWFuO1xuICBuYXZpZ2F0aW9uPzogYm9vbGVhbjtcbiAgcHJlY2lzaW9uPzogbnVtYmVyO1xuICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25Db25maWdbXTtcbiAgc2NhbGU/OiBudW1iZXIgfCAndmFyaWFibGUnO1xuICByZWZlcmVudGlhbHM/OiB7IHByb3BlcnR5OiBzdHJpbmc7IHJlZmVyZW5jZWRQcm9wZXJ0eTogc3RyaW5nIH1bXTtcbiAgcmVmZXJlbnRpYWw/OiBzdHJpbmc7XG4gIHJlZmVyZW5jZWQ/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBTdHJ1Y3R1cmVkVHlwZUNvbmZpZzxUPiA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBiYXNlPzogc3RyaW5nO1xuICBvcGVuPzogYm9vbGVhbjtcbiAgbW9kZWw/OiB7IG5ldyAoLi4ucGFyYW1zOiBhbnlbXSk6IGFueSB9O1xuICBjb2xsZWN0aW9uPzogeyBuZXcgKC4uLnBhcmFtczogYW55W10pOiBhbnkgfTtcbiAgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uQ29uZmlnW107XG4gIGtleXM/OiB7IG5hbWU6IHN0cmluZzsgYWxpYXM/OiBzdHJpbmcgfVtdO1xuICBmaWVsZHM6IHsgW1AgaW4ga2V5b2YgVF0/OiBTdHJ1Y3R1cmVkVHlwZUZpZWxkQ29uZmlnIH07XG59O1xuXG5leHBvcnQgdHlwZSBQYXJhbWV0ZXIgPSB7XG4gIHR5cGU6IHN0cmluZztcbiAgbnVsbGFibGU/OiBib29sZWFuO1xuICBjb2xsZWN0aW9uPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIENhbGxhYmxlQ29uZmlnID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGVudGl0eVNldFBhdGg/OiBzdHJpbmc7XG4gIGJvdW5kPzogYm9vbGVhbjtcbiAgY29tcG9zYWJsZT86IGJvb2xlYW47XG4gIHBhcmFtZXRlcnM/OiB7IFtuYW1lOiBzdHJpbmddOiBQYXJhbWV0ZXIgfTtcbiAgcmV0dXJuPzogeyB0eXBlOiBzdHJpbmc7IGNvbGxlY3Rpb24/OiBib29sZWFuIH07XG59O1xuZXhwb3J0IHR5cGUgRW50aXR5U2V0Q29uZmlnID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGVudGl0eVR5cGU6IHN0cmluZztcbiAgc2VydmljZTogeyBuZXcgKC4uLnBhcmFtczogYW55W10pOiBhbnkgfTtcbiAgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uQ29uZmlnW107XG59O1xuLy8jZW5kcmVnaW9uXG4iXX0=
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUEsTUFBTSxDQUFOLElBQVksV0FhWDtBQWJELFdBQVksV0FBVztJQUNyQiw4QkFBZSxDQUFBO0lBQ2Ysb0NBQXFCLENBQUE7SUFDckIsc0NBQXVCLENBQUE7SUFDdkIsc0NBQXVCLENBQUE7SUFDdkIsNEJBQWEsQ0FBQTtJQUNiLG9DQUFxQixDQUFBO0lBQ3JCLHdEQUF5QyxDQUFBO0lBQ3pDLHNDQUF1QixDQUFBO0lBQ3ZCLDhCQUFlLENBQUE7SUFDZiw4QkFBZSxDQUFBO0lBQ2Ysb0NBQXFCLENBQUE7SUFDckIsZ0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQWJXLFdBQVcsS0FBWCxXQUFXLFFBYXRCO0FBRUQsTUFBTSxDQUFOLElBQVksV0FlWDtBQWZELFdBQVksV0FBVztJQUNyQixnQ0FBaUIsQ0FBQTtJQUNqQixnQ0FBaUIsQ0FBQTtJQUNqQixrQ0FBbUIsQ0FBQTtJQUNuQiw4QkFBZSxDQUFBO0lBQ2YsZ0NBQWlCLENBQUE7SUFDakIsZ0NBQWlCLENBQUE7SUFDakIsc0NBQXVCLENBQUE7SUFDdkIsa0NBQW1CLENBQUE7SUFDbkIsMEJBQVcsQ0FBQTtJQUNYLDRCQUFhLENBQUE7SUFDYixzQ0FBdUIsQ0FBQTtJQUN2QixnQ0FBaUIsQ0FBQTtJQUNqQixnQ0FBaUIsQ0FBQTtJQUNqQiw4QkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFmVyxXQUFXLEtBQVgsV0FBVyxRQWV0QjtBQUNELE1BQU0sQ0FBTixJQUFZLE9BbUVYO0FBbkVELFdBQVksT0FBTztJQUNqQiw4Q0FBOEM7SUFDOUMsNEJBQWlCLENBQUE7SUFDakIsaUNBQWlDO0lBQ2pDLDhCQUFtQixDQUFBO0lBQ25CLHlDQUF5QztJQUN6QyxnQ0FBcUIsQ0FBQTtJQUNyQixpQ0FBaUM7SUFDakMsa0NBQXVCLENBQUE7SUFDdkIsaUNBQWlDO0lBQ2pDLDRCQUFpQixDQUFBO0lBQ2pCLGdDQUFnQztJQUNoQyw4QkFBbUIsQ0FBQTtJQUNuQixpQ0FBaUM7SUFDakMsOEJBQW1CLENBQUE7SUFDbkIsaUNBQWlDO0lBQ2pDLDhCQUFtQixDQUFBO0lBQ25CLDBDQUEwQztJQUMxQyw0QkFBaUIsQ0FBQTtJQUNqQixzREFBc0Q7SUFDdEQsc0NBQTJCLENBQUE7SUFDM0IsMkVBQTJFO0lBQzNFLGdEQUFxQyxDQUFBO0lBQ3JDLHdFQUF3RTtJQUN4RSxvQ0FBeUIsQ0FBQTtJQUN6QiwyREFBMkQ7SUFDM0Qsa0NBQXVCLENBQUE7SUFDdkIsMkVBQTJFO0lBQzNFLGdDQUFxQixDQUFBO0lBQ3JCLHlFQUF5RTtJQUN6RSxnQ0FBcUIsQ0FBQTtJQUNyQix3QkFBd0I7SUFDeEIsZ0NBQXFCLENBQUE7SUFDckIsK0JBQStCO0lBQy9CLGdDQUFxQixDQUFBO0lBQ3JCLDBEQUEwRDtJQUMxRCxzQ0FBMkIsQ0FBQTtJQUMzQiwrREFBK0Q7SUFDL0QsZ0RBQXFDLENBQUE7SUFDckMsd0VBQXdFO0lBQ3hFLDBEQUErQyxDQUFBO0lBQy9DLGlFQUFpRTtJQUNqRSxvREFBeUMsQ0FBQTtJQUN6QyxpRkFBaUY7SUFDakYsMERBQStDLENBQUE7SUFDL0MsNEZBQTRGO0lBQzVGLG9FQUF5RCxDQUFBO0lBQ3pELHFGQUFxRjtJQUNyRiw4REFBbUQsQ0FBQTtJQUNuRCxrRUFBa0U7SUFDbEUsMERBQStDLENBQUE7SUFDL0Msd0RBQXdEO0lBQ3hELG9DQUF5QixDQUFBO0lBQ3pCLDJEQUEyRDtJQUMzRCw4Q0FBbUMsQ0FBQTtJQUNuQyxzRUFBc0U7SUFDdEUsd0RBQTZDLENBQUE7SUFDN0MsK0RBQStEO0lBQy9ELGtEQUF1QyxDQUFBO0lBQ3ZDLCtFQUErRTtJQUMvRSx3REFBNkMsQ0FBQTtJQUM3QywwRkFBMEY7SUFDMUYsa0VBQXVELENBQUE7SUFDdkQsbUZBQW1GO0lBQ25GLDREQUFpRCxDQUFBO0lBQ2pELGdFQUFnRTtJQUNoRSx3REFBNkMsQ0FBQTtBQUMvQyxDQUFDLEVBbkVXLE9BQU8sS0FBUCxPQUFPLFFBbUVsQjtBQUVELE1BQU0sQ0FBTixJQUFZLFFBUVg7QUFSRCxXQUFZLFFBQVE7SUFDbEIsNkJBQWlCLENBQUE7SUFDakIsNkJBQWlCLENBQUE7SUFDakIsK0JBQW1CLENBQUE7SUFDbkIsNkJBQWlCLENBQUE7SUFDakIsMkJBQWUsQ0FBQTtJQUNmLCtCQUFtQixDQUFBO0lBQ25CLHlCQUFhLENBQUE7QUFDZixDQUFDLEVBUlcsUUFBUSxLQUFSLFFBQVEsUUFRbkI7QUFnRkQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3pCLFdBQVcsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsS0FBSztJQUNsQyxTQUFTLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUs7SUFDaEMsTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLO0NBQ2YsQ0FBQztBQXdHakIsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgT0RhdGFWZXJzaW9uID0gJzIuMCcgfCAnMy4wJyB8ICc0LjAnO1xuZXhwb3J0IHR5cGUgRmV0Y2hQb2xpY3kgPVxuICB8ICdjYWNoZS1maXJzdCdcbiAgfCAnY2FjaGUtYW5kLW5ldHdvcmsnXG4gIHwgJ25ldHdvcmstb25seSdcbiAgfCAnbm8tY2FjaGUnXG4gIHwgJ2NhY2hlLW9ubHknO1xuZXhwb3J0IHR5cGUgT0RhdGFNZXRhZGF0YVR5cGUgPSAnbWluaW1hbCcgfCAnZnVsbCcgfCAnbm9uZSc7XG5leHBvcnQgdHlwZSBDYWNoZUNhY2hlYWJpbGl0eSA9ICdwdWJsaWMnIHwgJ3ByaXZhdGUnIHwgJ25vLWNhY2hlJyB8ICduby1zdG9yZSc7XG5cbmV4cG9ydCBlbnVtIFBhdGhTZWdtZW50IHtcbiAgYmF0Y2ggPSAnYmF0Y2gnLFxuICBtZXRhZGF0YSA9ICdtZXRhZGF0YScsXG4gIGVudGl0eVNldCA9ICdlbnRpdHlTZXQnLFxuICBzaW5nbGV0b24gPSAnc2luZ2xldG9uJyxcbiAgdHlwZSA9ICd0eXBlJyxcbiAgcHJvcGVydHkgPSAncHJvcGVydHknLFxuICBuYXZpZ2F0aW9uUHJvcGVydHkgPSAnbmF2aWdhdGlvblByb3BlcnR5JyxcbiAgcmVmZXJlbmNlID0gJ3JlZmVyZW5jZScsXG4gIHZhbHVlID0gJ3ZhbHVlJyxcbiAgY291bnQgPSAnY291bnQnLFxuICBmdW5jdGlvbiA9ICdmdW5jdGlvbicsXG4gIGFjdGlvbiA9ICdhY3Rpb24nLFxufVxuXG5leHBvcnQgZW51bSBRdWVyeU9wdGlvbiB7XG4gIHNlbGVjdCA9ICdzZWxlY3QnLFxuICBleHBhbmQgPSAnZXhwYW5kJyxcbiAgY29tcHV0ZSA9ICdjb21wdXRlJyxcbiAgYXBwbHkgPSAnYXBwbHknLFxuICBmaWx0ZXIgPSAnZmlsdGVyJyxcbiAgc2VhcmNoID0gJ3NlYXJjaCcsXG4gIHRyYW5zZm9ybSA9ICd0cmFuc2Zvcm0nLFxuICBvcmRlckJ5ID0gJ29yZGVyQnknLFxuICB0b3AgPSAndG9wJyxcbiAgc2tpcCA9ICdza2lwJyxcbiAgc2tpcHRva2VuID0gJ3NraXB0b2tlbicsXG4gIGZvcm1hdCA9ICdmb3JtYXQnLFxuICBsZXZlbHMgPSAnbGV2ZWxzJyxcbiAgY291bnQgPSAnY291bnQnLFxufVxuZXhwb3J0IGVudW0gRWRtVHlwZSB7XG4gIC8vRWRtLkd1aWQgMTYtYnl0ZSAoMTI4LWJpdCkgdW5pcXVlIGlkZW50aWZpZXJcbiAgR3VpZCA9ICdFZG0uR3VpZCcsXG4gIC8vRWRtLkludDE2IFNpZ25lZCAxNi1iaXQgaW50ZWdlclxuICBJbnQxNiA9ICdFZG0uSW50MTYnLFxuICAvL0VkbS5TdHJpbmcgU2VxdWVuY2Ugb2YgVVRGLTggY2hhcmFjdGVyc1xuICBTdHJpbmcgPSAnRWRtLlN0cmluZycsXG4gIC8vRWRtLkJvb2xlYW4gQmluYXJ5LXZhbHVlZCBsb2dpY1xuICBCb29sZWFuID0gJ0VkbS5Cb29sZWFuJyxcbiAgLy9FZG0uQnl0ZSBVbnNpZ25lZCA4LWJpdCBpbnRlZ2VyXG4gIEJ5dGUgPSAnRWRtLkJ5dGUnLFxuICAvL0VkbS5TQnl0ZSBTaWduZWQgOC1iaXQgaW50ZWdlclxuICBTQnl0ZSA9ICdFZG0uU0J5dGUnLFxuICAvL0VkbS5JbnQzMiBTaWduZWQgMTYtYml0IGludGVnZXJcbiAgSW50MzIgPSAnRWRtLkludDMyJyxcbiAgLy9FZG0uSW50NjQgU2lnbmVkIDE2LWJpdCBpbnRlZ2VyXG4gIEludDY0ID0gJ0VkbS5JbnQ2NCcsXG4gIC8vRWRtLkRhdGUgRGF0ZSB3aXRob3V0IGEgdGltZS16b25lIG9mZnNldFxuICBEYXRlID0gJ0VkbS5EYXRlJyxcbiAgLy9FZG0uVGltZU9mRGF5IENsb2NrIHRpbWUgMDA6MDAtMjM6NTk6NTkuOTk5OTk5OTk5OTk5XG4gIFRpbWVPZkRheSA9ICdFZG0uVGltZU9mRGF5JyxcbiAgLy9FZG0uRGF0ZVRpbWVPZmZzZXQgRGF0ZSBhbmQgdGltZSB3aXRoIGEgdGltZS16b25lIG9mZnNldCwgbm8gbGVhcCBzZWNvbmRzXG4gIERhdGVUaW1lT2Zmc2V0ID0gJ0VkbS5EYXRlVGltZU9mZnNldCcsXG4gIC8vRWRtLkR1cmF0aW9uIFNpZ25lZCBkdXJhdGlvbiBpbiBkYXlzLCBob3VycywgbWludXRlcywgYW5kIChzdWIpc2Vjb25kc1xuICBEdXJhdGlvbiA9ICdFZG0uRHVyYXRpb24nLFxuICAvL0VkbS5EZWNpbWFsIE51bWVyaWMgdmFsdWVzIHdpdGggZml4ZWQgcHJlY2lzaW9uIGFuZCBzY2FsZVxuICBEZWNpbWFsID0gJ0VkbS5EZWNpbWFsJyxcbiAgLy9FZG0uRG91YmxlIElFRUUgNzU0IGJpbmFyeTY0IGZsb2F0aW5nLXBvaW50IG51bWJlciAoMTUtMTcgZGVjaW1hbCBkaWdpdHMpXG4gIERvdWJsZSA9ICdFZG0uRG91YmxlJyxcbiAgLy9FZG0uU2luZ2xlIElFRUUgNzU0IGJpbmFyeTMyIGZsb2F0aW5nLXBvaW50IG51bWJlciAoNi05IGRlY2ltYWwgZGlnaXRzKVxuICBTaW5nbGUgPSAnRWRtLlNpbmdsZScsXG4gIC8vRWRtLkJpbmFyeSBCaW5hcnkgZGF0YVxuICBCaW5hcnkgPSAnRWRtLkJpbmFyeScsXG4gIC8vRWRtLlN0cmVhbSBCaW5hcnkgZGF0YSBzdHJlYW1cbiAgU3RyZWFtID0gJ0VkbS5TdHJlYW0nLFxuICAvL0VkbS5HZW9ncmFwaHkgQWJzdHJhY3QgYmFzZSB0eXBlIGZvciBhbGwgR2VvZ3JhcGh5IHR5cGVzXG4gIEdlb2dyYXBoeSA9ICdFZG0uR2VvZ3JhcGh5JyxcbiAgLy9FZG0uR2VvZ3JhcGh5UG9pbnQgQSBwb2ludCBpbiBhIHJvdW5kLWVhcnRoIGNvb3JkaW5hdGUgc3lzdGVtXG4gIEdlb2dyYXBoeVBvaW50ID0gJ0VkbS5HZW9ncmFwaHlQb2ludCcsXG4gIC8vRWRtLkdlb2dyYXBoeUxpbmVTdHJpbmcgTGluZSBzdHJpbmcgaW4gYSByb3VuZC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuICBHZW9ncmFwaHlMaW5lU3RyaW5nID0gJ0VkbS5HZW9ncmFwaHlMaW5lU3RyaW5nJyxcbiAgLy9FZG0uR2VvZ3JhcGh5UG9seWdvbiBQb2x5Z29uIGluIGEgcm91bmQtZWFydGggY29vcmRpbmF0ZSBzeXN0ZW1cbiAgR2VvZ3JhcGh5UG9seWdvbiA9ICdFZG0uR2VvZ3JhcGh5UG9seWdvbicsXG4gIC8vRWRtLkdlb2dyYXBoeU11bHRpUG9pbnQgQ29sbGVjdGlvbiBvZiBwb2ludHMgaW4gYSByb3VuZC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuICBHZW9ncmFwaHlNdWx0aVBvaW50ID0gJ0VkbS5HZW9ncmFwaHlNdWx0aVBvaW50JyxcbiAgLy9FZG0uR2VvZ3JhcGh5TXVsdGlMaW5lU3RyaW5nIENvbGxlY3Rpb24gb2YgbGluZSBzdHJpbmdzIGluIGEgcm91bmQtZWFydGggY29vcmRpbmF0ZSBzeXN0ZW1cbiAgR2VvZ3JhcGh5TXVsdGlMaW5lU3RyaW5nID0gJ0VkbS5HZW9ncmFwaHlNdWx0aUxpbmVTdHJpbmcnLFxuICAvL0VkbS5HZW9ncmFwaHlNdWx0aVBvbHlnb24gQ29sbGVjdGlvbiBvZiBwb2x5Z29ucyBpbiBhIHJvdW5kLWVhcnRoIGNvb3JkaW5hdGUgc3lzdGVtXG4gIEdlb2dyYXBoeU11bHRpUG9seWdvbiA9ICdFZG0uR2VvZ3JhcGh5TXVsdGlQb2x5Z29uJyxcbiAgLy9FZG0uR2VvZ3JhcGh5Q29sbGVjdGlvbiBDb2xsZWN0aW9uIG9mIGFyYml0cmFyeSBHZW9ncmFwaHkgdmFsdWVzXG4gIEdlb2dyYXBoeUNvbGxlY3Rpb24gPSAnRWRtLkdlb2dyYXBoeUNvbGxlY3Rpb24nLFxuICAvL0VkbS5HZW9tZXRyeSBBYnN0cmFjdCBiYXNlIHR5cGUgZm9yIGFsbCBHZW9tZXRyeSB0eXBlc1xuICBHZW9tZXRyeSA9ICdFZG0uR2VvbWV0cnknLFxuICAvL0VkbS5HZW9tZXRyeVBvaW50IFBvaW50IGluIGEgZmxhdC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuICBHZW9tZXRyeVBvaW50ID0gJ0VkbS5HZW9tZXRyeVBvaW50JyxcbiAgLy9FZG0uR2VvbWV0cnlMaW5lU3RyaW5nIExpbmUgc3RyaW5nIGluIGEgZmxhdC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuICBHZW9tZXRyeUxpbmVTdHJpbmcgPSAnRWRtLkdlb21ldHJ5TGluZVN0cmluZycsXG4gIC8vRWRtLkdlb21ldHJ5UG9seWdvbiBQb2x5Z29uIGluIGEgZmxhdC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuICBHZW9tZXRyeVBvbHlnb24gPSAnRWRtLkdlb21ldHJ5UG9seWdvbicsXG4gIC8vRWRtLkdlb21ldHJ5TXVsdGlQb2ludCBDb2xsZWN0aW9uIG9mIHBvaW50cyBpbiBhIGZsYXQtZWFydGggY29vcmRpbmF0ZSBzeXN0ZW1cbiAgR2VvbWV0cnlNdWx0aVBvaW50ID0gJ0VkbS5HZW9tZXRyeU11bHRpUG9pbnQnLFxuICAvL0VkbS5HZW9tZXRyeU11bHRpTGluZVN0cmluZyBDb2xsZWN0aW9uIG9mIGxpbmUgc3RyaW5ncyBpbiBhIGZsYXQtZWFydGggY29vcmRpbmF0ZSBzeXN0ZW1cbiAgR2VvbWV0cnlNdWx0aUxpbmVTdHJpbmcgPSAnRWRtLkdlb21ldHJ5TXVsdGlMaW5lU3RyaW5nJyxcbiAgLy9FZG0uR2VvbWV0cnlNdWx0aVBvbHlnb24gQ29sbGVjdGlvbiBvZiBwb2x5Z29ucyBpbiBhIGZsYXQtZWFydGggY29vcmRpbmF0ZSBzeXN0ZW1cbiAgR2VvbWV0cnlNdWx0aVBvbHlnb24gPSAnRWRtLkdlb21ldHJ5TXVsdGlQb2x5Z29uJyxcbiAgLy9FZG0uR2VvbWV0cnlDb2xsZWN0aW9uIENvbGxlY3Rpb24gb2YgYXJiaXRyYXJ5IEdlb21ldHJ5IHZhbHVlc1xuICBHZW9tZXRyeUNvbGxlY3Rpb24gPSAnRWRtLkdlb21ldHJ5Q29sbGVjdGlvbicsXG59XG5cbmV4cG9ydCBlbnVtIEpzb25UeXBlIHtcbiAgc3RyaW5nID0gJ3N0cmluZycsXG4gIG51bWJlciA9ICdudW1iZXInLFxuICBpbnRlZ2VyID0gJ2ludGVnZXInLFxuICBvYmplY3QgPSAnb2JqZWN0JyxcbiAgYXJyYXkgPSAnYXJyYXknLFxuICBib29sZWFuID0gJ2Jvb2xlYW4nLFxuICBudWxsID0gJ251bGwnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpT3B0aW9ucyB7XG4gIHZlcnNpb24/OiBPRGF0YVZlcnNpb247XG4gIHBhcmFtcz86IHsgW3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9O1xuICBoZWFkZXJzPzogeyBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH07XG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG4gIC8vSGVhZGVyc1xuICBhY2NlcHQ/OiB7XG4gICAgZXhwb25lbnRpYWxEZWNpbWFscz86IGJvb2xlYW47XG4gICAgbWV0YWRhdGE/OiBPRGF0YU1ldGFkYXRhVHlwZTtcbiAgICBpZWVlNzU0Q29tcGF0aWJsZT86IGJvb2xlYW47XG4gICAgc3RyZWFtaW5nPzogYm9vbGVhbjtcbiAgfTtcbiAgZXRhZz86IHtcbiAgICBpZk1hdGNoPzogYm9vbGVhbjtcbiAgICBpZk5vbmVNYXRjaD86IGJvb2xlYW47XG4gIH07XG4gIHByZWZlcj86IHtcbiAgICBtYXhQYWdlU2l6ZT86IG51bWJlcjtcbiAgICByZXR1cm4/OiAncmVwcmVzZW50YXRpb24nIHwgJ21pbmltYWwnO1xuICAgIGNvbnRpbnVlT25FcnJvcj86IGJvb2xlYW47XG4gICAgaW5jbHVkZUFubm90YXRpb25zPzogc3RyaW5nO1xuICB9O1xuICBzdHJpcE1ldGFkYXRhPzogT0RhdGFNZXRhZGF0YVR5cGU7XG4gIGZldGNoUG9saWN5PzogRmV0Y2hQb2xpY3k7XG4gIGJvZHlRdWVyeU9wdGlvbnM/OiBRdWVyeU9wdGlvbltdO1xuICBzdHJpbmdBc0VudW0/OiBib29sZWFuO1xuICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9PRGF0YS9XZWJBcGkvaXNzdWVzLzE5NzRcbiAgLy9odHRwczovL2dpdGh1Yi5jb20vT0RhdGEvV2ViQXBpL2lzc3Vlcy8xNjQ3XG4gIGRlbGV0ZVJlZkJ5PzogJ3BhdGgnIHwgJ2lkJztcbiAgLy9odHRwczovL2dpdGh1Yi5jb20vT0RhdGEvQXNwTmV0Q29yZU9EYXRhL2lzc3Vlcy8xNzFcbiAgbm9uUGFyZW50aGVzaXNGb3JFbXB0eVBhcmFtZXRlckZ1bmN0aW9uPzogYm9vbGVhbjtcbiAganNvbkJhdGNoRm9ybWF0PzogYm9vbGVhbjtcbiAgcmVsYXRpdmVVcmxzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJzZXJPcHRpb25zIHtcbiAgdmVyc2lvbj86IE9EYXRhVmVyc2lvbjtcbiAgZXhwb25lbnRpYWxEZWNpbWFscz86IGJvb2xlYW47XG4gIG1ldGFkYXRhPzogT0RhdGFNZXRhZGF0YVR5cGU7XG4gIGllZWU3NTRDb21wYXRpYmxlPzogYm9vbGVhbjtcbiAgc3RyZWFtaW5nPzogYm9vbGVhbjtcbiAgc3RyaW5nQXNFbnVtPzogYm9vbGVhbjtcbiAgZGVsZXRlUmVmQnk/OiAncGF0aCcgfCAnaWQnO1xuICBub25QYXJlbnRoZXNpc0ZvckVtcHR5UGFyYW1ldGVyRnVuY3Rpb24/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3BvbnNlT3B0aW9ucyBleHRlbmRzIFBhcnNlck9wdGlvbnMge1xuICBjYWNoZWFiaWxpdHk/OiBDYWNoZUNhY2hlYWJpbGl0eTtcbiAgbWF4QWdlPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0cnVjdHVyZWRUeXBlRmllbGRPcHRpb25zIGV4dGVuZHMgUGFyc2VyT3B0aW9ucyB7XG4gIGZpZWxkOiBTdHJ1Y3R1cmVkVHlwZUZpZWxkQ29uZmlnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlcjxUPiB7XG4gIC8vIERlc2VyaWFsaXplIHZhbHVlL3MgZnJvbSByZXF1ZXN0IGJvZHkuXG4gIGRlc2VyaWFsaXplKFxuICAgIHZhbHVlOiBhbnksXG4gICAgb3B0aW9ucz86IFBhcnNlck9wdGlvbnMgfCBTdHJ1Y3R1cmVkVHlwZUZpZWxkT3B0aW9uc1xuICApOiBUO1xuICAvLyBTZXJpYWxpemUgdmFsdWUvcyBmb3IgcmVxdWVzdCBib2R5LlxuICBzZXJpYWxpemUoXG4gICAgdmFsdWU6IGFueSxcbiAgICBvcHRpb25zPzogUGFyc2VyT3B0aW9ucyB8IFN0cnVjdHVyZWRUeXBlRmllbGRPcHRpb25zXG4gICk6IGFueTtcbiAgLy9FbmNvZGUgdmFsdWUvcyBmb3IgVVJMIHBhcmFtZXRlciBvciBxdWVyeS1zdHJpbmcuXG4gIGVuY29kZSh2YWx1ZTogYW55LCBvcHRpb25zPzogUGFyc2VyT3B0aW9ucyB8IFN0cnVjdHVyZWRUeXBlRmllbGRPcHRpb25zKTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkUGFyc2VyPFQ+IGV4dGVuZHMgUGFyc2VyPFQ+IHtcbiAgbnVsbGFibGU/OiBib29sZWFuO1xuICBkZWZhdWx0PzogYW55O1xuICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIHByZWNpc2lvbj86IG51bWJlcjtcbiAgc2NhbGU/OiBudW1iZXIgfCAndmFyaWFibGUnO1xufVxuXG5leHBvcnQgY29uc3QgTk9ORV9QQVJTRVIgPSB7XG4gIGRlc2VyaWFsaXplOiAodmFsdWU6IGFueSkgPT4gdmFsdWUsXG4gIHNlcmlhbGl6ZTogKHZhbHVlOiBhbnkpID0+IHZhbHVlLFxuICBlbmNvZGU6ICh2YWx1ZTogYW55KSA9PiB2YWx1ZSxcbn0gYXMgUGFyc2VyPGFueT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FjaGUge1xuICBwdXQ8VD4oa2V5OiBzdHJpbmcsIHBheWxvYWQ6IFQsIC4uLm9wdHM6IGFueVtdKTogdm9pZDtcbiAgZ2V0PFQ+KGtleTogc3RyaW5nLCAuLi5vcHRzOiBhbnlbXSk6IFQgfCB1bmRlZmluZWQ7XG59XG5cbi8vI3JlZ2lvbiBDb25maWdzXG5leHBvcnQgdHlwZSBBcGlDb25maWcgPSB7XG4gIHNlcnZpY2VSb290VXJsOiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBPRGF0YVZlcnNpb247XG4gIGRlZmF1bHQ/OiBib29sZWFuO1xuICBjcmVhdGlvbj86IERhdGU7XG4gIGNhY2hlPzogQ2FjaGU7XG4gIGVycm9ySGFuZGxlcj86IChlcnJvcjogYW55LCBjYXVnaHQ6IE9ic2VydmFibGU8YW55PikgPT4gT2JzZXJ2YWJsZTxuZXZlcj47XG4gIG9wdGlvbnM/OiBBcGlPcHRpb25zO1xuICBwYXJzZXJzPzogeyBbdHlwZTogc3RyaW5nXTogUGFyc2VyPGFueT4gfTtcbiAgc2NoZW1hcz86IFNjaGVtYUNvbmZpZ1tdO1xufTtcbmV4cG9ydCB0eXBlIEFubm90YXRpb25Db25maWcgPSB7XG4gIHRlcm06IHN0cmluZztcbiAgc3RyaW5nPzogc3RyaW5nO1xuICBib29sPzogYm9vbGVhbjtcbiAgaW50PzogbnVtYmVyO1xuICBwZXJtaXNzaW9ucz86IHN0cmluZ1tdO1xuICBwcm9wZXJ0aWVzPzogc3RyaW5nW107XG59O1xuZXhwb3J0IHR5cGUgU2NoZW1hQ29uZmlnID0ge1xuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgYWxpYXM/OiBzdHJpbmc7XG4gIGFubm90YXRpb25zPzogQW5ub3RhdGlvbkNvbmZpZ1tdO1xuICBlbnVtcz86IEVudW1UeXBlQ29uZmlnPGFueT5bXTtcbiAgZW50aXRpZXM/OiBTdHJ1Y3R1cmVkVHlwZUNvbmZpZzxhbnk+W107XG4gIGNhbGxhYmxlcz86IENhbGxhYmxlQ29uZmlnW107XG4gIGNvbnRhaW5lcnM/OiBFbnRpdHlDb250YWluZXJDb25maWdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEVudGl0eUNvbnRhaW5lckNvbmZpZyA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25Db25maWdbXTtcbiAgZW50aXR5U2V0cz86IEVudGl0eVNldENvbmZpZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgRW51bVR5cGVGaWVsZENvbmZpZzxFPiA9IHtcbiAgdmFsdWU6IEU7XG4gIGFubm90YXRpb25zPzogQW5ub3RhdGlvbkNvbmZpZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgRW51bVR5cGVDb25maWc8RT4gPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgZmxhZ3M/OiBib29sZWFuO1xuICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25Db25maWdbXTtcbiAgbWVtYmVyczogeyBbbmFtZTogc3RyaW5nXTogRSB9IHwgeyBbdmFsdWU6IG51bWJlcl06IHN0cmluZyB9O1xuICBmaWVsZHM6IHsgW21lbWJlcjogc3RyaW5nXTogRW51bVR5cGVGaWVsZENvbmZpZzxFPiB9O1xufTtcblxuZXhwb3J0IHR5cGUgU3RydWN0dXJlZFR5cGVGaWVsZENvbmZpZyA9IHtcbiAgdHlwZTogc3RyaW5nO1xuICBkZWZhdWx0PzogYW55O1xuICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIGtleT86IGJvb2xlYW47XG4gIGNvbGxlY3Rpb24/OiBib29sZWFuO1xuICBudWxsYWJsZT86IGJvb2xlYW47XG4gIG5hdmlnYXRpb24/OiBib29sZWFuO1xuICBwcmVjaXNpb24/OiBudW1iZXI7XG4gIGFubm90YXRpb25zPzogQW5ub3RhdGlvbkNvbmZpZ1tdO1xuICBzY2FsZT86IG51bWJlciB8ICd2YXJpYWJsZSc7XG4gIHJlZmVyZW50aWFscz86IHsgcHJvcGVydHk6IHN0cmluZzsgcmVmZXJlbmNlZFByb3BlcnR5OiBzdHJpbmcgfVtdO1xuICByZWZlcmVudGlhbD86IHN0cmluZztcbiAgcmVmZXJlbmNlZD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFN0cnVjdHVyZWRUeXBlQ29uZmlnPFQ+ID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGJhc2U/OiBzdHJpbmc7XG4gIG9wZW4/OiBib29sZWFuO1xuICBtb2RlbD86IHsgbmV3ICguLi5wYXJhbXM6IGFueVtdKTogYW55IH07XG4gIGNvbGxlY3Rpb24/OiB7IG5ldyAoLi4ucGFyYW1zOiBhbnlbXSk6IGFueSB9O1xuICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25Db25maWdbXTtcbiAga2V5cz86IHsgbmFtZTogc3RyaW5nOyBhbGlhcz86IHN0cmluZyB9W107XG4gIGZpZWxkczogeyBbUCBpbiBrZXlvZiBUXT86IFN0cnVjdHVyZWRUeXBlRmllbGRDb25maWcgfTtcbn07XG5cbmV4cG9ydCB0eXBlIFBhcmFtZXRlciA9IHtcbiAgdHlwZTogc3RyaW5nO1xuICBudWxsYWJsZT86IGJvb2xlYW47XG4gIGNvbGxlY3Rpb24/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgQ2FsbGFibGVDb25maWcgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgZW50aXR5U2V0UGF0aD86IHN0cmluZztcbiAgYm91bmQ/OiBib29sZWFuO1xuICBjb21wb3NhYmxlPzogYm9vbGVhbjtcbiAgcGFyYW1ldGVycz86IHsgW25hbWU6IHN0cmluZ106IFBhcmFtZXRlciB9O1xuICByZXR1cm4/OiB7IHR5cGU6IHN0cmluZzsgY29sbGVjdGlvbj86IGJvb2xlYW4gfTtcbn07XG5leHBvcnQgdHlwZSBFbnRpdHlTZXRDb25maWcgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgZW50aXR5VHlwZTogc3RyaW5nO1xuICBzZXJ2aWNlOiB7IG5ldyAoLi4ucGFyYW1zOiBhbnlbXSk6IGFueSB9O1xuICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25Db25maWdbXTtcbn07XG4vLyNlbmRyZWdpb25cbiJdfQ==
@@ -65,11 +65,13 @@ export const Http = {
65
65
  res = res.split(':')[1].trim();
66
66
  return res;
67
67
  },
68
- parseResponseStatus(statusLine) {
69
- const status = statusLine.split(' ')[0];
70
- const code = parseInt(statusLine.split(' ')[1], 10);
71
- const message = statusLine.split(' ')[2];
72
- return { status, code, message };
68
+ parseResponseStatus(line) {
69
+ const chunks = line.split(' ');
70
+ return {
71
+ status: chunks[0],
72
+ code: parseInt(chunks[1], 10),
73
+ message: chunks.slice(2).join(' '),
74
+ };
73
75
  },
74
76
  boundaryDelimiter(contentType) {
75
77
  const contentTypeParts = contentType.split(';');
@@ -90,4 +92,4 @@ export const Http = {
90
92
  return boundaryEnd;
91
93
  },
92
94
  };
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi91dGlscy9odHRwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEMsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHO0lBQ2xCLGVBQWU7SUFDZixnQkFBZ0IsQ0FDZCxHQUFHLE1BQWlFO1FBRXBFLElBQUksT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3ZCLElBQUksS0FBSyxZQUFZLFdBQVcsRUFBRTtnQkFDaEMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUMzQixPQUFPLEdBQUcsQ0FBRSxLQUFxQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQ3pELENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQzlCLE9BQU8sQ0FDUixDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDO2FBQ0o7aUJBQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7b0JBQzdDLE9BQU8sR0FBRyxDQUFDLEtBQUss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QUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsV0FBbUI7UUFDbkMsTUFBTSxnQkFBZ0IsR0FBYSxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFELElBQUksZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNqQyxNQUFNLFFBQVEsR0FBVyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFELE1BQU0saUJBQWlCLEdBQ3JCLHNCQUFzQixHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEQsT0FBTyxpQkFBaUIsQ0FBQztTQUMxQjthQUFNO1lBQ0wsT0FBTyxFQUFFLENBQUM7U0FDWDtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsaUJBQXlCO1FBQ25DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7WUFDN0IsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE1BQU0sV0FBVyxHQUFXLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO1FBQ3ZFLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7IEJPVU5EQVJZX1BSRUZJWF9TVUZGSVggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVHlwZXMgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IEh0dHAgPSB7XG4gIC8vTWVyZ2UgSGVhZGVyc1xuICBtZXJnZUh0dHBIZWFkZXJzKFxuICAgIC4uLnZhbHVlczogKEh0dHBIZWFkZXJzIHwgeyBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9KVtdXG4gICk6IEh0dHBIZWFkZXJzIHtcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIHZhbHVlcy5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgSHR0cEhlYWRlcnMpIHtcbiAgICAgICAgdmFsdWUua2V5cygpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgIGhlYWRlcnMgPSAoKHZhbHVlIGFzIEh0dHBIZWFkZXJzKS5nZXRBbGwoa2V5KSB8fCBbXSkucmVkdWNlKFxuICAgICAgICAgICAgKGFjYywgdikgPT4gYWNjLmFwcGVuZChrZXksIHYpLFxuICAgICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoVHlwZXMuaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgT2JqZWN0LmVudHJpZXModmFsdWUpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgIGhlYWRlcnMgPSAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV0pLnJlZHVjZShcbiAgICAgICAgICAgIChhY2MsIHYpID0+IGFjYy5hcHBlbmQoa2V5LCB2KSxcbiAgICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGhlYWRlcnM7XG4gIH0sXG5cbiAgLy8gTWVyZ2UgUGFyYW1zXG4gIG1lcmdlSHR0cFBhcmFtcyhcbiAgICAuLi52YWx1ZXM6IChcbiAgICAgIHwgSHR0cFBhcmFtc1xuICAgICAgfCB7XG4gICAgICAgICAgW3BhcmFtOiBzdHJpbmddOlxuICAgICAgICAgICAgfCBzdHJpbmdcbiAgICAgICAgICAgIHwgbnVtYmVyXG4gICAgICAgICAgICB8IGJvb2xlYW5cbiAgICAgICAgICAgIHwgUmVhZG9ubHlBcnJheTxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPjtcbiAgICAgICAgfVxuICAgIClbXVxuICApOiBIdHRwUGFyYW1zIHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICB2YWx1ZXMuZm9yRWFjaCgodmFsdWUpID0+IHtcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEh0dHBQYXJhbXMpIHtcbiAgICAgICAgdmFsdWUua2V5cygpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgIHBhcmFtcyA9ICgodmFsdWUgYXMgSHR0cFBhcmFtcykuZ2V0QWxsKGtleSkgfHwgW10pLnJlZHVjZShcbiAgICAgICAgICAgIChhY2MsIHYpID0+IGFjYy5hcHBlbmQoa2V5LCB2KSxcbiAgICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoVHlwZXMuaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgT2JqZWN0LmVudHJpZXModmFsdWUpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgIHBhcmFtcyA9IChBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXSkucmVkdWNlKFxuICAgICAgICAgICAgKGFjYywgdikgPT4gYWNjLmFwcGVuZChrZXksIHYpLFxuICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwYXJhbXM7XG4gIH0sXG5cbiAgLy8gU3BsaXQgUGFyYW1zXG4gIHNwbGl0SHR0cFBhcmFtcyhcbiAgICBwYXJhbXM6IEh0dHBQYXJhbXMsXG4gICAga2V5czogc3RyaW5nW10sXG4gICk6IFtIdHRwUGFyYW1zLCBIdHRwUGFyYW1zXSB7XG4gICAgbGV0IG90aGVyID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBwYXJhbXMua2V5cygpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKGtleXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICBvdGhlciA9IChwYXJhbXMuZ2V0QWxsKGtleSkgfHwgW10pLnJlZHVjZShcbiAgICAgICAgICAoYWNjLCB2KSA9PiBhY2MuYXBwZW5kKGtleSwgdiksXG4gICAgICAgICAgb3RoZXIsXG4gICAgICAgICk7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5kZWxldGUoa2V5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gW3BhcmFtcywgb3RoZXJdO1xuICB9LFxuXG4gIC8vIFdpdGhvdXQgUGFyYW1zXG4gIHdpdGhvdXRIdHRwUGFyYW1zKHBhcmFtczogSHR0cFBhcmFtcywga2V5czogc3RyaW5nW10pOiBIdHRwUGFyYW1zIHtcbiAgICByZXR1cm4ga2V5cy5yZWR1Y2UoKGFjYywga2V5KSA9PiBhY2MuZGVsZXRlKGtleSksIHBhcmFtcyk7XG4gIH0sXG5cbiAgcmVzb2x2ZUhlYWRlcktleShcbiAgICBoZWFkZXJzOiBIdHRwSGVhZGVycyB8IHsgW3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9LFxuICAgIG9wdGlvbnM6IHN0cmluZ1tdLFxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmIChoZWFkZXJzIGluc3RhbmNlb2YgSHR0cEhlYWRlcnMpIHtcbiAgICAgIHJldHVybiBoZWFkZXJzLmtleXMoKS5maW5kKChrKSA9PiBvcHRpb25zLmluZGV4T2YoaykgIT09IC0xKTtcbiAgICB9IGVsc2UgaWYgKFR5cGVzLmlzUGxhaW5PYmplY3QoaGVhZGVycykpIHtcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhoZWFkZXJzKS5maW5kKChrKSA9PiBvcHRpb25zLmluZGV4T2YoaykgIT09IC0xKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSxcblxuICBoZWFkZXJWYWx1ZShoZWFkZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IHJlczogc3RyaW5nID0gaGVhZGVyLnNwbGl0KCc7JylbMF0udHJpbSgpO1xuICAgIHJlcyA9IHJlcy5zcGxpdCgnOicpWzFdLnRyaW0oKTtcbiAgICByZXR1cm4gcmVzO1xuICB9LFxuXG4gIHBhcnNlUmVzcG9uc2VTdGF0dXMoc3RhdHVzTGluZTogc3RyaW5nKToge1xuICAgIHN0YXR1czogc3RyaW5nO1xuICAgIGNvZGU6IG51bWJlcjtcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gIH0ge1xuICAgIGNvbnN0IHN0YXR1cyA9IHN0YXR1c0xpbmUuc3BsaXQoJyAnKVswXTtcbiAgICBjb25zdCBjb2RlID0gcGFyc2VJbnQoc3RhdHVzTGluZS5zcGxpdCgnICcpWzFdLCAxMCk7XG4gICAgY29uc3QgbWVzc2FnZSA9IHN0YXR1c0xpbmUuc3BsaXQoJyAnKVsyXTtcbiAgICByZXR1cm4geyBzdGF0dXMsIGNvZGUsIG1lc3NhZ2UgfTtcbiAgfSxcblxuICBib3VuZGFyeURlbGltaXRlcihjb250ZW50VHlwZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb250ZW50VHlwZVBhcnRzOiBzdHJpbmdbXSA9IGNvbnRlbnRUeXBlLnNwbGl0KCc7Jyk7XG4gICAgaWYgKGNvbnRlbnRUeXBlUGFydHMubGVuZ3RoID09PSAyKSB7XG4gICAgICBjb25zdCBib3VuZGFyeTogc3RyaW5nID0gY29udGVudFR5cGUuc3BsaXQoJzsnKVsxXS50cmltKCk7XG4gICAgICBjb25zdCBib3VuZGFyeURlbGltaXRlcjogc3RyaW5nID1cbiAgICAgICAgQk9VTkRBUllfUFJFRklYX1NVRkZJWCArIGJvdW5kYXJ5LnNwbGl0KCc9JylbMV07XG4gICAgICByZXR1cm4gYm91bmRhcnlEZWxpbWl0ZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH0sXG5cbiAgYm91bmRhcnlFbmQoYm91bmRhcnlEZWxpbWl0ZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFib3VuZGFyeURlbGltaXRlci5sZW5ndGgpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3QgYm91bmRhcnlFbmQ6IHN0cmluZyA9IGJvdW5kYXJ5RGVsaW1pdGVyICsgQk9VTkRBUllfUFJFRklYX1NVRkZJWDtcbiAgICByZXR1cm4gYm91bmRhcnlFbmQ7XG4gIH0sXG59O1xuIl19
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi91dGlscy9odHRwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEMsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHO0lBQ2xCLGVBQWU7SUFDZixnQkFBZ0IsQ0FDZCxHQUFHLE1BQWlFO1FBRXBFLElBQUksT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3ZCLElBQUksS0FBSyxZQUFZLFdBQVcsRUFBRTtnQkFDaEMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUMzQixPQUFPLEdBQUcsQ0FBRSxLQUFxQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQ3pELENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQzlCLE9BQU8sQ0FDUixDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDO2FBQ0o7aUJBQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7b0JBQzdDLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDdkQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFDOUIsT0FBTyxDQUNSLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELGVBQWU7SUFDZixlQUFlLENBQ2IsR0FBRyxNQVNBO1FBRUgsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUM5QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxLQUFLLFlBQVksVUFBVSxFQUFFO2dCQUMvQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQzNCLE1BQU0sR0FBRyxDQUFFLEtBQW9CLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDdkQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFDOUIsTUFBTSxDQUNQLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtvQkFDN0MsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUN0RCxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUM5QixNQUFNLENBQ1AsQ0FBQztnQkFDSixDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsZUFBZTtJQUNmLGVBQWUsQ0FDYixNQUFrQixFQUNsQixJQUFjO1FBRWQsSUFBSSxLQUFLLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUM3QixNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDNUIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN0QixLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDdkMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFDOUIsS0FBSyxDQUNOLENBQUM7Z0JBQ0YsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDN0I7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELGlCQUFpQjtJQUNqQixpQkFBaUIsQ0FBQyxNQUFrQixFQUFFLElBQWM7UUFDbEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsZ0JBQWdCLENBQ2QsT0FBNkQsRUFDN0QsT0FBaUI7UUFFakIsSUFBSSxPQUFPLFlBQVksV0FBVyxFQUFFO1lBQ2xDLE9BQU8sT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlEO2FBQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3ZDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNwRTtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBYztRQUN4QixJQUFJLEdBQUcsR0FBVyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlDLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9CLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQVk7UUFLOUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixPQUFPO1lBQ0wsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDakIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7U0FDbkMsQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxXQUFtQjtRQUNuQyxNQUFNLGdCQUFnQixHQUFhLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUQsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLE1BQU0sUUFBUSxHQUFXLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUQsTUFBTSxpQkFBaUIsR0FDckIsc0JBQXNCLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsRCxPQUFPLGlCQUFpQixDQUFDO1NBQzFCO2FBQU07WUFDTCxPQUFPLEVBQUUsQ0FBQztTQUNYO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxpQkFBeUI7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRTtZQUM3QixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsTUFBTSxXQUFXLEdBQVcsaUJBQWlCLEdBQUcsc0JBQXNCLENBQUM7UUFDdkUsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgQk9VTkRBUllfUFJFRklYX1NVRkZJWCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUeXBlcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgSHR0cCA9IHtcbiAgLy9NZXJnZSBIZWFkZXJzXG4gIG1lcmdlSHR0cEhlYWRlcnMoXG4gICAgLi4udmFsdWVzOiAoSHR0cEhlYWRlcnMgfCB7IFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH0pW11cbiAgKTogSHR0cEhlYWRlcnMge1xuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgdmFsdWVzLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBIdHRwSGVhZGVycykge1xuICAgICAgICB2YWx1ZS5rZXlzKCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgaGVhZGVycyA9ICgodmFsdWUgYXMgSHR0cEhlYWRlcnMpLmdldEFsbChrZXkpIHx8IFtdKS5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjLCB2KSA9PiBhY2MuYXBwZW5kKGtleSwgdiksXG4gICAgICAgICAgICBoZWFkZXJzXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKFR5cGVzLmlzUGxhaW5PYmplY3QodmFsdWUpKSB7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHZhbHVlKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICBoZWFkZXJzID0gKEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdKS5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjLCB2KSA9PiBhY2MuYXBwZW5kKGtleSwgdiksXG4gICAgICAgICAgICBoZWFkZXJzXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGhlYWRlcnM7XG4gIH0sXG5cbiAgLy8gTWVyZ2UgUGFyYW1zXG4gIG1lcmdlSHR0cFBhcmFtcyhcbiAgICAuLi52YWx1ZXM6IChcbiAgICAgIHwgSHR0cFBhcmFtc1xuICAgICAgfCB7XG4gICAgICAgICAgW3BhcmFtOiBzdHJpbmddOlxuICAgICAgICAgICAgfCBzdHJpbmdcbiAgICAgICAgICAgIHwgbnVtYmVyXG4gICAgICAgICAgICB8IGJvb2xlYW5cbiAgICAgICAgICAgIHwgUmVhZG9ubHlBcnJheTxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPjtcbiAgICAgICAgfVxuICAgIClbXVxuICApOiBIdHRwUGFyYW1zIHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICB2YWx1ZXMuZm9yRWFjaCgodmFsdWUpID0+IHtcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEh0dHBQYXJhbXMpIHtcbiAgICAgICAgdmFsdWUua2V5cygpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgIHBhcmFtcyA9ICgodmFsdWUgYXMgSHR0cFBhcmFtcykuZ2V0QWxsKGtleSkgfHwgW10pLnJlZHVjZShcbiAgICAgICAgICAgIChhY2MsIHYpID0+IGFjYy5hcHBlbmQoa2V5LCB2KSxcbiAgICAgICAgICAgIHBhcmFtc1xuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChUeXBlcy5pc1BsYWluT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICBPYmplY3QuZW50cmllcyh2YWx1ZSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgcGFyYW1zID0gKEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdKS5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjLCB2KSA9PiBhY2MuYXBwZW5kKGtleSwgdiksXG4gICAgICAgICAgICBwYXJhbXNcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcGFyYW1zO1xuICB9LFxuXG4gIC8vIFNwbGl0IFBhcmFtc1xuICBzcGxpdEh0dHBQYXJhbXMoXG4gICAgcGFyYW1zOiBIdHRwUGFyYW1zLFxuICAgIGtleXM6IHN0cmluZ1tdXG4gICk6IFtIdHRwUGFyYW1zLCBIdHRwUGFyYW1zXSB7XG4gICAgbGV0IG90aGVyID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBwYXJhbXMua2V5cygpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKGtleXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICBvdGhlciA9IChwYXJhbXMuZ2V0QWxsKGtleSkgfHwgW10pLnJlZHVjZShcbiAgICAgICAgICAoYWNjLCB2KSA9PiBhY2MuYXBwZW5kKGtleSwgdiksXG4gICAgICAgICAgb3RoZXJcbiAgICAgICAgKTtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLmRlbGV0ZShrZXkpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBbcGFyYW1zLCBvdGhlcl07XG4gIH0sXG5cbiAgLy8gV2l0aG91dCBQYXJhbXNcbiAgd2l0aG91dEh0dHBQYXJhbXMocGFyYW1zOiBIdHRwUGFyYW1zLCBrZXlzOiBzdHJpbmdbXSk6IEh0dHBQYXJhbXMge1xuICAgIHJldHVybiBrZXlzLnJlZHVjZSgoYWNjLCBrZXkpID0+IGFjYy5kZWxldGUoa2V5KSwgcGFyYW1zKTtcbiAgfSxcblxuICByZXNvbHZlSGVhZGVyS2V5KFxuICAgIGhlYWRlcnM6IEh0dHBIZWFkZXJzIHwgeyBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH0sXG4gICAgb3B0aW9uczogc3RyaW5nW11cbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoaGVhZGVycyBpbnN0YW5jZW9mIEh0dHBIZWFkZXJzKSB7XG4gICAgICByZXR1cm4gaGVhZGVycy5rZXlzKCkuZmluZCgoaykgPT4gb3B0aW9ucy5pbmRleE9mKGspICE9PSAtMSk7XG4gICAgfSBlbHNlIGlmIChUeXBlcy5pc1BsYWluT2JqZWN0KGhlYWRlcnMpKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMoaGVhZGVycykuZmluZCgoaykgPT4gb3B0aW9ucy5pbmRleE9mKGspICE9PSAtMSk7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0sXG5cbiAgaGVhZGVyVmFsdWUoaGVhZGVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCByZXM6IHN0cmluZyA9IGhlYWRlci5zcGxpdCgnOycpWzBdLnRyaW0oKTtcbiAgICByZXMgPSByZXMuc3BsaXQoJzonKVsxXS50cmltKCk7XG4gICAgcmV0dXJuIHJlcztcbiAgfSxcblxuICBwYXJzZVJlc3BvbnNlU3RhdHVzKGxpbmU6IHN0cmluZyk6IHtcbiAgICBzdGF0dXM6IHN0cmluZztcbiAgICBjb2RlOiBudW1iZXI7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICB9IHtcbiAgICBjb25zdCBjaHVua3MgPSBsaW5lLnNwbGl0KCcgJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1czogY2h1bmtzWzBdLFxuICAgICAgY29kZTogcGFyc2VJbnQoY2h1bmtzWzFdLCAxMCksXG4gICAgICBtZXNzYWdlOiBjaHVua3Muc2xpY2UoMikuam9pbignICcpLFxuICAgIH07XG4gIH0sXG5cbiAgYm91bmRhcnlEZWxpbWl0ZXIoY29udGVudFR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgY29udGVudFR5cGVQYXJ0czogc3RyaW5nW10gPSBjb250ZW50VHlwZS5zcGxpdCgnOycpO1xuICAgIGlmIChjb250ZW50VHlwZVBhcnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgY29uc3QgYm91bmRhcnk6IHN0cmluZyA9IGNvbnRlbnRUeXBlLnNwbGl0KCc7JylbMV0udHJpbSgpO1xuICAgICAgY29uc3QgYm91bmRhcnlEZWxpbWl0ZXI6IHN0cmluZyA9XG4gICAgICAgIEJPVU5EQVJZX1BSRUZJWF9TVUZGSVggKyBib3VuZGFyeS5zcGxpdCgnPScpWzFdO1xuICAgICAgcmV0dXJuIGJvdW5kYXJ5RGVsaW1pdGVyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9LFxuXG4gIGJvdW5kYXJ5RW5kKGJvdW5kYXJ5RGVsaW1pdGVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghYm91bmRhcnlEZWxpbWl0ZXIubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IGJvdW5kYXJ5RW5kOiBzdHJpbmcgPSBib3VuZGFyeURlbGltaXRlciArIEJPVU5EQVJZX1BSRUZJWF9TVUZGSVg7XG4gICAgcmV0dXJuIGJvdW5kYXJ5RW5kO1xuICB9LFxufTtcbiJdfQ==