@magic-xpa/utils 4.800.0-dev480.22 → 4.800.0-dev480.220

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 (38) hide show
  1. package/bundles/magic-xpa-utils.umd.js +72 -1222
  2. package/bundles/magic-xpa-utils.umd.js.map +1 -1
  3. package/bundles/magic-xpa-utils.umd.min.js +1 -1
  4. package/bundles/magic-xpa-utils.umd.min.js.map +1 -1
  5. package/esm2015/index.js +1 -1
  6. package/esm2015/magic-xpa-utils.js +1 -4
  7. package/esm2015/src/Base64.js +1 -46
  8. package/esm2015/src/ChoiceUtils.js +1 -13
  9. package/esm2015/src/Constants.js +2 -14
  10. package/esm2015/src/DateTimeUtils.js +1 -2
  11. package/esm2015/src/DateUtil.js +1 -13
  12. package/esm2015/src/InternalInterface.js +4 -8
  13. package/esm2015/src/JSON_Utils.js +1 -1
  14. package/esm2015/src/Logger.js +2 -81
  15. package/esm2015/src/MagicConstants.js +1 -1
  16. package/esm2015/src/Misc.js +1 -60
  17. package/esm2015/src/MsgInterface.js +1 -1
  18. package/esm2015/src/PICInterface.js +20 -31
  19. package/esm2015/src/PlatformUtils.js +2 -2
  20. package/esm2015/src/Queue.js +1 -9
  21. package/esm2015/src/Randomizer.js +1 -1
  22. package/esm2015/src/RequestInfo.js +1 -4
  23. package/esm2015/src/Rtf.js +15 -199
  24. package/esm2015/src/StorageAttribute.js +1 -33
  25. package/esm2015/src/StrUtil.js +0 -0
  26. package/esm2015/src/SyncExecutionHelper.js +1 -16
  27. package/esm2015/src/UtilDateJpn.js +9 -89
  28. package/esm2015/src/UtilImeJpn.js +3 -32
  29. package/esm2015/src/UtilStrByteMode.js +15 -288
  30. package/esm2015/src/XMLConstants.js +1 -12
  31. package/esm2015/src/Xml/XmlParser.js +3 -100
  32. package/esm2015/src/enums.js +1 -1
  33. package/fesm2015/magic-xpa-utils.js +72 -1224
  34. package/fesm2015/magic-xpa-utils.js.map +1 -1
  35. package/magic-xpa-utils.d.ts +0 -3
  36. package/package.json +2 -2
  37. package/src/InternalInterface.d.ts +1 -1
  38. package/src/StrUtil.d.ts +0 -1
@@ -1,13 +1,5 @@
1
1
  import { StorageAttribute } from "./enums";
2
- /// <summary>
3
- /// type checking for enum 'StorageAttribute'
4
- /// </summary>
5
2
  export class StorageAttributeCheck {
6
- /// <summary>
7
- /// is the both types belong to the same inner data types
8
- /// </summary>
9
- /// <param name = "type1">data type</param>
10
- /// <param name = "type2">data type</param>
11
3
  static isTheSameType(type1, type2) {
12
4
  return type1 === type2 || (StorageAttributeCheck.isTypeNumeric(type1) && StorageAttributeCheck.isTypeNumeric(type2)) || (StorageAttributeCheck.isTypeLogical(type1) && StorageAttributeCheck.isTypeLogical(type2)) || (StorageAttributeCheck.IsTypeAlphaOrUnicode(type1) && StorageAttributeCheck.IsTypeAlphaOrUnicode(type2)) || (StorageAttributeCheck.isTypeBlob(type1) && StorageAttributeCheck.isTypeBlob(type2)) || (StorageAttributeCheck.isTypeDotNet(type1) && StorageAttributeCheck.isTypeDotNet(type2));
13
5
  }
@@ -17,36 +9,18 @@ export class StorageAttributeCheck {
17
9
  static isTypeAlpha(type) {
18
10
  return type === StorageAttribute.ALPHA || type === StorageAttribute.MEMO;
19
11
  }
20
- /// <summary>
21
- /// is the both types belong to the NUMERIC inner type
22
- /// </summary>
23
12
  static isTypeNumeric(type) {
24
13
  return type === StorageAttribute.DATE || type === StorageAttribute.TIME || type === StorageAttribute.NUMERIC;
25
14
  }
26
- /// <summary>
27
- /// is the both types belong to the LOGICAL inner type
28
- /// </summary>
29
15
  static isTypeLogical(type) {
30
16
  return type === StorageAttribute.BOOLEAN;
31
17
  }
32
- /// <summary>
33
- /// is the type is DOTNET
34
- /// </summary>
35
18
  static isTypeDotNet(type) {
36
19
  return type === StorageAttribute.DOTNET;
37
20
  }
38
- /// <summary>
39
- /// is the type ALPHA or UNICODE
40
- /// </summary>
41
- /// <param name = "type">data type</param>
42
21
  static IsTypeAlphaOrUnicode(type) {
43
22
  return type === StorageAttribute.ALPHA || type === StorageAttribute.UNICODE;
44
23
  }
45
- /// <summary>
46
- /// is the inner type ALPHA or UNICODE
47
- /// </summary>
48
- /// <param name = "type1">data type</param>
49
- /// <param name = "type2">data type</param>
50
24
  static StorageFldAlphaOrUnicode(type1, type2) {
51
25
  return StorageAttributeCheck.IsTypeAlphaOrUnicode(type1) && StorageAttributeCheck.IsTypeAlphaOrUnicode(type2);
52
26
  }
@@ -62,12 +36,6 @@ export class StorageAttributeCheck {
62
36
  return ((type1AlphaOrUnicode && type2Blob) || (type2AlphaOrUnicode && type1Blob));
63
37
  }
64
38
  }
65
- /// <summary>
66
- /// Check if types are compatible or not.
67
- /// </summary>
68
- /// <param name="sourceAttribute"></param>
69
- /// <param name="destinationAttribute"></param>
70
- /// <returns></returns>
71
39
  static IsTypeCompatibile(sourceAttribute, destinationAttribute) {
72
40
  let isTypeCompatible = false;
73
41
  switch (sourceAttribute) {
@@ -113,4 +81,4 @@ export class StorageAttributeCheck {
113
81
  constructor() {
114
82
  }
115
83
  }
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmFnZUF0dHJpYnV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3V0aWxzL3NyYy9TdG9yYWdlQXR0cmlidXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUV6QyxhQUFhO0FBQ2IsNkNBQTZDO0FBQzdDLGNBQWM7QUFDZCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLGFBQWE7SUFDYix5REFBeUQ7SUFDekQsY0FBYztJQUNkLDJDQUEyQztJQUMzQywyQ0FBMkM7SUFDM0MsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUF1QixFQUFFLEtBQXVCO1FBQ25FLE9BQU8sS0FBSyxLQUFLLEtBQUssSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxJQUFJLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUkscUJBQXFCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUkscUJBQXFCLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDcmYsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBc0I7UUFDdEMsT0FBTyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsSUFBSSxJQUFJLElBQUksS0FBSyxnQkFB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QUFLLGdCQUFnQixDQUFDLElBQUk7Z0JBQ3hCLElBQUksb0JBQW9CLEtBQUssZ0JBQWdCLENBQUMsSUFBSSxFQUFFO29CQUNsRCxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7aUJBQ3pCO2dCQUNELE1BQU07U0FDVDtRQUNELE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVEO0lBQ0EsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTdG9yYWdlQXR0cmlidXRlfSBmcm9tIFwiLi9lbnVtc1wiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gdHlwZSBjaGVja2luZyBmb3IgZW51bSAnU3RvcmFnZUF0dHJpYnV0ZSdcclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VBdHRyaWJ1dGVDaGVjayB7XHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBpcyB0aGUgYm90aCB0eXBlcyBiZWxvbmcgdG8gdGhlIHNhbWUgaW5uZXIgZGF0YSB0eXBlc1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0eXBlMVwiPmRhdGEgdHlwZTwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0eXBlMlwiPmRhdGEgdHlwZTwvcGFyYW0+XHJcbiAgc3RhdGljIGlzVGhlU2FtZVR5cGUodHlwZTE6IFN0b3JhZ2VBdHRyaWJ1dGUsIHR5cGUyOiBTdG9yYWdlQXR0cmlidXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZTEgPT09IHR5cGUyIHx8IChTdG9yYWdlQXR0cmlidXRlQ2hlY2suaXNUeXBlTnVtZXJpYyh0eXBlMSkgJiYgU3RvcmFnZUF0dHJpYnV0ZUNoZWNrLmlzVHlwZU51bWVyaWModHlwZTIpKSB8fCAoU3RvcmFnZUF0dHJpYnV0ZUNoZWNrLmlzVHlwZUxvZ2ljYWwodHlwZTEpICYmIFN0b3JhZ2VBdHRyaWJ1dGVDaGVjay5pc1R5cGVMb2dpY2FsKHR5cGUyKSkgfHwgKFN0b3JhZ2VBdHRyaWJ1dGVDaGVjay5Jc1R5cGVBbHBoYU9yVW5pY29kZSh0eXBlMSkgJiYgU3RvcmFnZUF0dHJpYnV0ZUNoZWNrLklzVHlwZUFscGhhT3JVbmljb2RlKHR5cGUyKSkgfHwgKFN0b3JhZ2VBdHRyaWJ1dGVDaGVjay5pc1R5cGVCbG9iKHR5cGUxKSAmJiBTdG9yYWdlQXR0cmlidXRlQ2hlY2suaXNUeXBlQmxvYih0eXBlMikpIHx8IChTdG9yYWdlQXR0cmlidXRlQ2hlY2suaXNUeXBlRG90TmV0KHR5cGUxKSAmJiBTdG9yYWdlQXR0cmlidXRlQ2hlY2suaXNUeXBlRG90TmV0KHR5cGUyKSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaXNUeXBlQmxvYih0eXBlOiBTdG9yYWdlQXR0cmlidXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CIHx8IHR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQl9WRUNUT1I7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaXNUeXBlQWxwaGEodHlwZTogU3RvcmFnZUF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEEgfHwgdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5NRU1PO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBpcyB0aGUgYm90aCB0eXBlcyBiZWxvbmcgdG8gdGhlIE5VTUVSSUMgaW5uZXIgdHlwZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc3RhdGljIGlzVHlwZU51bWVyaWModHlwZTogU3RvcmFnZUF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuREFURSB8fCB0eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLlRJTUUgfHwgdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBpcyB0aGUgYm90aCB0eXBlcyBiZWxvbmcgdG8gdGhlIExPR0lDQUwgaW5uZXIgdHlwZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc3RhdGljIGlzVHlwZUxvZ2ljYWwodHlwZTogU3RvcmFnZUF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQk9PTEVBTjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gaXMgdGhlIHR5cGUgaXMgRE9UTkVUXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzdGF0aWMgaXNUeXBlRG90TmV0KHR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkRPVE5FVDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gaXMgdGhlIHR5cGUgQUxQSEEgb3IgVU5JQ09ERVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0eXBlXCI+ZGF0YSB0eXBlPC9wYXJhbT5cclxuICBzdGF0aWMgSXNUeXBlQWxwaGFPclVuaWNvZGUodHlwZTogU3RvcmFnZUF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEEgfHwgdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBpcyB0aGUgaW5uZXIgdHlwZSBBTFBIQSBvciBVTklDT0RFXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInR5cGUxXCI+ZGF0YSB0eXBlPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInR5cGUyXCI+ZGF0YSB0eXBlPC9wYXJhbT5cclxuICBzdGF0aWMgU3RvcmFnZUZsZEFscGhhT3JVbmljb2RlKHR5cGUxOiBTdG9yYWdlQXR0cmlidXRlLCB0eXBlMjogU3RvcmFnZUF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIFN0b3JhZ2VBdHRyaWJ1dGVDaGVjay5Jc1R5cGVBbHBoYU9yVW5pY29kZSh0eXBlMSkgJiYgU3RvcmFnZUF0dHJpYnV0ZUNoZWNrLklzVHlwZUFscGhhT3JVbmljb2RlKHR5cGUyKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBTdG9yYWdlRmxkQWxwaGFVbmljb2RlT3JCbG9iKHR5cGUxOiBTdG9yYWdlQXR0cmlidXRlLCB0eXBlMjogU3RvcmFnZUF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHR5cGUxQWxwaGFPclVuaWNvZGU6IGJvb2xlYW4gPSBTdG9yYWdlQXR0cmlidXRlQ2hlY2suSXNUeXBlQWxwaGFPclVuaWNvZGUodHlwZTEpO1xyXG4gICAgbGV0IHR5cGUyQWxwaGFPclVuaWNvZGU6IGJvb2xlYW4gPSBTdG9yYWdlQXR0cmlidXRlQ2hlY2suSXNUeXBlQWxwaGFPclVuaWNvZGUodHlwZTIpO1xyXG5cclxuICAgIGlmICh0eXBlMUFscGhhT3JVbmljb2RlICYmIHR5cGUyQWxwaGFPclVuaWNvZGUpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgbGV0IHR5cGUxQmxvYjogYm9vbGVhbiA9IHR5cGUxID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0I7XHJcbiAgICAgIGxldCB0eXBlMkJsb2I6IGJvb2xlYW4gPSB0eXBlMiA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CO1xyXG4gICAgICByZXR1cm4gKCh0eXBlMUFscGhhT3JVbmljb2RlICYmIHR5cGUyQmxvYikgfHwgKHR5cGUyQWxwaGFPclVuaWNvZGUgJiYgdHlwZTFCbG9iKSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBDaGVjayBpZiB0eXBlcyBhcmUgY29tcGF0aWJsZSBvciBub3QuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJzb3VyY2VBdHRyaWJ1dGVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImRlc3RpbmF0aW9uQXR0cmlidXRlXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBJc1R5cGVDb21wYXRpYmlsZShzb3VyY2VBdHRyaWJ1dGU6IFN0b3JhZ2VBdHRyaWJ1dGUsIGRlc3RpbmF0aW9uQXR0cmlidXRlOiBTdG9yYWdlQXR0cmlidXRlKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgaXNUeXBlQ29tcGF0aWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHN3aXRjaCAoc291cmNlQXR0cmlidXRlKSB7XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQTpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREU6XHJcbiAgICAgICAgaWYgKGRlc3RpbmF0aW9uQXR0cmlidXRlID09PSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBIHx8IGRlc3RpbmF0aW9uQXR0cmlidXRlID09PSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREUgfHxcclxuICAgICAgICAgIGRlc3RpbmF0aW9uQXR0cmlidXRlID09PSBTdG9yYWdlQXR0cmlidXRlLkRBVEUgfHwgZGVzdGluYXRpb25BdHRyaWJ1dGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuVElNRSB8fFxyXG4gICAgICAgICAgZGVzdGluYXRpb25BdHRyaWJ1dGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQykge1xyXG4gICAgICAgICAgaXNUeXBlQ29tcGF0aWJsZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUM6XHJcbiAgICAgICAgaWYgKGRlc3RpbmF0aW9uQXR0cmlidXRlID09PSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUMgfHwgZGVzdGluYXRpb25BdHRyaWJ1dGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEEgfHxcclxuICAgICAgICAgIGRlc3RpbmF0aW9uQXR0cmlidXRlID09PSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREUgfHwgZGVzdGluYXRpb25BdHRyaWJ1dGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQk9PTEVBTiB8fFxyXG4gICAgICAgICAgZGVzdGluYXRpb25BdHRyaWJ1dGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuREFURSB8fCBkZXN0aW5hdGlvbkF0dHJpYnV0ZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5USU1FKSB7XHJcbiAgICAgICAgICBpc1R5cGVDb21wYXRpYmxlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQk9PTEVBTjoge1xyXG4gICAgICAgIGlmIChkZXN0aW5hdGlvbkF0dHJpYnV0ZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CT09MRUFOIHx8IGRlc3RpbmF0aW9uQXR0cmlidXRlID09PSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBIHx8XHJcbiAgICAgICAgICBkZXN0aW5hdGlvbkF0dHJpYnV0ZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFIHx8IGRlc3RpbmF0aW9uQXR0cmlidXRlID09PSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUMpIHtcclxuICAgICAgICAgIGlzVHlwZUNvbXBhdGlibGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuREFURTpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLlRJTUU6XHJcbiAgICAgICAgaWYgKGRlc3RpbmF0aW9uQXR0cmlidXRlID09PSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBIHx8IGRlc3RpbmF0aW9uQXR0cmlidXRlID09PSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREUgfHxcclxuICAgICAgICAgIGRlc3RpbmF0aW9uQXR0cmlidXRlID09PSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUMgfHwgZGVzdGluYXRpb25BdHRyaWJ1dGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQk9PTEVBTiB8fFxyXG4gICAgICAgICAgZGVzdGluYXRpb25BdHRyaWJ1dGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuREFURSB8fCBkZXN0aW5hdGlvbkF0dHJpYnV0ZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5USU1FKSB7XHJcbiAgICAgICAgICBpc1R5cGVDb21wYXRpYmxlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5CTE9COlxyXG4gICAgICAgIGlmIChkZXN0aW5hdGlvbkF0dHJpYnV0ZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CKSB7XHJcbiAgICAgICAgICBpc1R5cGVDb21wYXRpYmxlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNUeXBlQ29tcGF0aWJsZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxufVxyXG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmFnZUF0dHJpYnV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3V0aWxzL3NyYy9TdG9yYWdlQXR0cmlidXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUt6QyxNQUFNLE9BQU8scUJBQXFCO0lBTWhDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBdUIsRUFBRSxLQUF1QjtRQUNuRSxPQUFPLEtBQUssS0FBSyxLQUFLLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUkscUJBQXFCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUkscUJBQXFCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JmLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLElBQXNCO1FBQ3RDLE9BQU8sSUFBSSxLQUFLLGdCQUFnQixDQUFDLElBQUksSUFBSSxJQUFJLEtBQUssZ0JBQWdCLENBQUMsV0FBVyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLElBQXNCO1FBQ3ZDLE9BQU8sSUFBSSxLQUFLLGdCQUFnQixD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QkFDN0IsSUFBSSxvQkFBb0IsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLElBQUksb0JBQW9CLEtBQUssZ0JBQWdCLENBQUMsS0FBSzt3QkFDdEcsb0JBQW9CLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxJQUFJLG9CQUFvQixLQUFLLGdCQUFnQixDQUFDLE9BQU8sRUFBRTt3QkFDeEcsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO3FCQUN6QjtpQkFDRjtnQkFDQyxNQUFNO1lBQ1IsS0FBSyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7WUFDM0IsS0FBSyxnQkFBZ0IsQ0FBQyxJQUFJO2dCQUN4QixJQUFJLG9CQUFvQixLQUFLLGdCQUFnQixDQUFDLEtBQUssSUFBSSxvQkFBb0IsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPO29CQUN0RyxvQkFBb0IsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLElBQUksb0JBQW9CLEtBQUssZ0JBQWdCLENBQUMsT0FBTztvQkFDdEcsb0JBQW9CLEtBQUssZ0JBQWdCLENBQUMsSUFBSSxJQUFJLG9CQUFvQixLQUFLLGdCQUFnQixDQUFDLElBQUksRUFBRTtvQkFDbEcsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2lCQUN6QjtnQkFDRCxNQUFNO1lBQ1IsS0FBSyxnQkFBZ0IsQ0FBQyxJQUFJO2dCQUN4QixJQUFJLG9CQUFvQixLQUFLLGdCQUFnQixDQUFDLElBQUksRUFBRTtvQkFDbEQsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2lCQUN6QjtnQkFDRCxNQUFNO1NBQ1Q7UUFDRCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFFRDtJQUNBLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3RvcmFnZUF0dHJpYnV0ZX0gZnJvbSBcIi4vZW51bXNcIjtcclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vIHR5cGUgY2hlY2tpbmcgZm9yIGVudW0gJ1N0b3JhZ2VBdHRyaWJ1dGUnXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBTdG9yYWdlQXR0cmlidXRlQ2hlY2sge1xyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gaXMgdGhlIGJvdGggdHlwZXMgYmVsb25nIHRvIHRoZSBzYW1lIGlubmVyIGRhdGEgdHlwZXNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidHlwZTFcIj5kYXRhIHR5cGU8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidHlwZTJcIj5kYXRhIHR5cGU8L3BhcmFtPlxyXG4gIHN0YXRpYyBpc1RoZVNhbWVUeXBlKHR5cGUxOiBTdG9yYWdlQXR0cmlidXRlLCB0eXBlMjogU3RvcmFnZUF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGUxID09PSB0eXBlMiB8fCAoU3RvcmFnZUF0dHJpYnV0ZUNoZWNrLmlzVHlwZU51bWVyaWModHlwZTEpICYmIFN0b3JhZ2VBdHRyaWJ1dGVDaGVjay5pc1R5cGVOdW1lcmljKHR5cGUyKSkgfHwgKFN0b3JhZ2VBdHRyaWJ1dGVDaGVjay5pc1R5cGVMb2dpY2FsKHR5cGUxKSAmJiBTdG9yYWdlQXR0cmlidXRlQ2hlY2suaXNUeXBlTG9naWNhbCh0eXBlMikpIHx8IChTdG9yYWdlQXR0cmlidXRlQ2hlY2suSXNUeXBlQWxwaGFPclVuaWNvZGUodHlwZTEpICYmIFN0b3JhZ2VBdHRyaWJ1dGVDaGVjay5Jc1R5cGVBbHBoYU9yVW5pY29kZSh0eXBlMikpIHx8IChTdG9yYWdlQXR0cmlidXRlQ2hlY2suaXNUeXBlQmxvYih0eXBlMSkgJiYgU3RvcmFnZUF0dHJpYnV0ZUNoZWNrLmlzVHlwZUJsb2IodHlwZTIpKSB8fCAoU3RvcmFnZUF0dHJpYnV0ZUNoZWNrLmlzVHlwZURvdE5ldCh0eXBlMSkgJiYgU3RvcmFnZUF0dHJpYnV0ZUNoZWNrLmlzVHlwZURvdE5ldCh0eXBlMikpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGlzVHlwZUJsb2IodHlwZTogU3RvcmFnZUF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQiB8fCB0eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGlzVHlwZUFscGhhKHR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBIHx8IHR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuTUVNTztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gaXMgdGhlIGJvdGggdHlwZXMgYmVsb25nIHRvIHRoZSBOVU1FUklDIGlubmVyIHR5cGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHN0YXRpYyBpc1R5cGVOdW1lcmljKHR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkRBVEUgfHwgdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5USU1FIHx8IHR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gaXMgdGhlIGJvdGggdHlwZXMgYmVsb25nIHRvIHRoZSBMT0dJQ0FMIGlubmVyIHR5cGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHN0YXRpYyBpc1R5cGVMb2dpY2FsKHR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJPT0xFQU47XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGlzIHRoZSB0eXBlIGlzIERPVE5FVFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc3RhdGljIGlzVHlwZURvdE5ldCh0eXBlOiBTdG9yYWdlQXR0cmlidXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5ET1RORVQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGlzIHRoZSB0eXBlIEFMUEhBIG9yIFVOSUNPREVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidHlwZVwiPmRhdGEgdHlwZTwvcGFyYW0+XHJcbiAgc3RhdGljIElzVHlwZUFscGhhT3JVbmljb2RlKHR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBIHx8IHR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gaXMgdGhlIGlubmVyIHR5cGUgQUxQSEEgb3IgVU5JQ09ERVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0eXBlMVwiPmRhdGEgdHlwZTwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0eXBlMlwiPmRhdGEgdHlwZTwvcGFyYW0+XHJcbiAgc3RhdGljIFN0b3JhZ2VGbGRBbHBoYU9yVW5pY29kZSh0eXBlMTogU3RvcmFnZUF0dHJpYnV0ZSwgdHlwZTI6IFN0b3JhZ2VBdHRyaWJ1dGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBTdG9yYWdlQXR0cmlidXRlQ2hlY2suSXNUeXBlQWxwaGFPclVuaWNvZGUodHlwZTEpICYmIFN0b3JhZ2VBdHRyaWJ1dGVDaGVjay5Jc1R5cGVBbHBoYU9yVW5pY29kZSh0eXBlMik7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgU3RvcmFnZUZsZEFscGhhVW5pY29kZU9yQmxvYih0eXBlMTogU3RvcmFnZUF0dHJpYnV0ZSwgdHlwZTI6IFN0b3JhZ2VBdHRyaWJ1dGUpOiBib29sZWFuIHtcclxuICAgIGxldCB0eXBlMUFscGhhT3JVbmljb2RlOiBib29sZWFuID0gU3RvcmFnZUF0dHJpYnV0ZUNoZWNrLklzVHlwZUFscGhhT3JVbmljb2RlKHR5cGUxKTtcclxuICAgIGxldCB0eXBlMkFscGhhT3JVbmljb2RlOiBib29sZWFuID0gU3RvcmFnZUF0dHJpYnV0ZUNoZWNrLklzVHlwZUFscGhhT3JVbmljb2RlKHR5cGUyKTtcclxuXHJcbiAgICBpZiAodHlwZTFBbHBoYU9yVW5pY29kZSAmJiB0eXBlMkFscGhhT3JVbmljb2RlKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCB0eXBlMUJsb2I6IGJvb2xlYW4gPSB0eXBlMSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CO1xyXG4gICAgICBsZXQgdHlwZTJCbG9iOiBib29sZWFuID0gdHlwZTIgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQjtcclxuICAgICAgcmV0dXJuICgodHlwZTFBbHBoYU9yVW5pY29kZSAmJiB0eXBlMkJsb2IpIHx8ICh0eXBlMkFscGhhT3JVbmljb2RlICYmIHR5cGUxQmxvYikpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gQ2hlY2sgaWYgdHlwZXMgYXJlIGNvbXBhdGlibGUgb3Igbm90LlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwic291cmNlQXR0cmlidXRlXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJkZXN0aW5hdGlvbkF0dHJpYnV0ZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgSXNUeXBlQ29tcGF0aWJpbGUoc291cmNlQXR0cmlidXRlOiBTdG9yYWdlQXR0cmlidXRlLCBkZXN0aW5hdGlvbkF0dHJpYnV0ZTogU3RvcmFnZUF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGlzVHlwZUNvbXBhdGlibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBzd2l0Y2ggKHNvdXJjZUF0dHJpYnV0ZSkge1xyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEE6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFOlxyXG4gICAgICAgIGlmIChkZXN0aW5hdGlvbkF0dHJpYnV0ZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQSB8fCBkZXN0aW5hdGlvbkF0dHJpYnV0ZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFIHx8XHJcbiAgICAgICAgICBkZXN0aW5hdGlvbkF0dHJpYnV0ZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5EQVRFIHx8IGRlc3RpbmF0aW9uQXR0cmlidXRlID09PSBTdG9yYWdlQXR0cmlidXRlLlRJTUUgfHxcclxuICAgICAgICAgIGRlc3RpbmF0aW9uQXR0cmlidXRlID09PSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUMpIHtcclxuICAgICAgICAgIGlzVHlwZUNvbXBhdGlibGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDOlxyXG4gICAgICAgIGlmIChkZXN0aW5hdGlvbkF0dHJpYnV0ZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDIHx8IGRlc3RpbmF0aW9uQXR0cmlidXRlID09PSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBIHx8XHJcbiAgICAgICAgICBkZXN0aW5hdGlvbkF0dHJpYnV0ZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFIHx8IGRlc3RpbmF0aW9uQXR0cmlidXRlID09PSBTdG9yYWdlQXR0cmlidXRlLkJPT0xFQU4gfHxcclxuICAgICAgICAgIGRlc3RpbmF0aW9uQXR0cmlidXRlID09PSBTdG9yYWdlQXR0cmlidXRlLkRBVEUgfHwgZGVzdGluYXRpb25BdHRyaWJ1dGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuVElNRSkge1xyXG4gICAgICAgICAgaXNUeXBlQ29tcGF0aWJsZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkJPT0xFQU46IHtcclxuICAgICAgICBpZiAoZGVzdGluYXRpb25BdHRyaWJ1dGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQk9PTEVBTiB8fCBkZXN0aW5hdGlvbkF0dHJpYnV0ZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQSB8fFxyXG4gICAgICAgICAgZGVzdGluYXRpb25BdHRyaWJ1dGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERSB8fCBkZXN0aW5hdGlvbkF0dHJpYnV0ZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDKSB7XHJcbiAgICAgICAgICBpc1R5cGVDb21wYXRpYmxlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkRBVEU6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5USU1FOlxyXG4gICAgICAgIGlmIChkZXN0aW5hdGlvbkF0dHJpYnV0ZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQSB8fCBkZXN0aW5hdGlvbkF0dHJpYnV0ZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFIHx8XHJcbiAgICAgICAgICBkZXN0aW5hdGlvbkF0dHJpYnV0ZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDIHx8IGRlc3RpbmF0aW9uQXR0cmlidXRlID09PSBTdG9yYWdlQXR0cmlidXRlLkJPT0xFQU4gfHxcclxuICAgICAgICAgIGRlc3RpbmF0aW9uQXR0cmlidXRlID09PSBTdG9yYWdlQXR0cmlidXRlLkRBVEUgfHwgZGVzdGluYXRpb25BdHRyaWJ1dGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuVElNRSkge1xyXG4gICAgICAgICAgaXNUeXBlQ29tcGF0aWJsZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQjpcclxuICAgICAgICBpZiAoZGVzdGluYXRpb25BdHRyaWJ1dGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQikge1xyXG4gICAgICAgICAgaXNUeXBlQ29tcGF0aWJsZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlzVHlwZUNvbXBhdGlibGU7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcbn1cclxuIl19
Binary file
@@ -1,34 +1,19 @@
1
1
  import { Logger } from "./Logger";
2
- /// <summary>
3
- /// Helper class for synchronized execution.
4
- /// It works by creating a promise and then waiting for the promise to be completed
5
- /// </summary>
6
- // @dynamic
7
2
  export class SyncExecutionHelper {
8
3
  constructor() {
9
- // resolver is caller when promise is fullfilled
10
4
  this.resolver = null;
11
5
  }
12
- /// <summary>
13
- /// get instance of SyncExecutionHelper
14
- /// </summary>
15
6
  static get Instance() {
16
7
  if (SyncExecutionHelper._instance === null)
17
8
  SyncExecutionHelper._instance = new SyncExecutionHelper();
18
9
  return SyncExecutionHelper._instance;
19
10
  }
20
- /// <summary>
21
- /// To wait, create a promise and add wait for it to complete
22
- /// </summary>
23
11
  Wait() {
24
12
  Logger.Instance.WriteDevToLog("SyncExecutionHelper.Wait()");
25
13
  return new Promise((resolve, reject) => {
26
14
  this.resolver = resolve;
27
15
  }).then();
28
16
  }
29
- /// <summary>
30
- /// To resume call the resolver
31
- /// </summary>
32
17
  Pulse() {
33
18
  let resolver = this.resolver;
34
19
  if (resolver != null) {
@@ -38,4 +23,4 @@ export class SyncExecutionHelper {
38
23
  }
39
24
  }
40
25
  SyncExecutionHelper._instance = null;
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3luY0V4ZWN1dGlvbkhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3V0aWxzL3NyYy9TeW5jRXhlY3V0aW9uSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFaEMsYUFBYTtBQUNiLDRDQUE0QztBQUM1QyxtRkFBbUY7QUFDbkYsY0FBYztBQUNkLFdBQVc7QUFDWCxNQUFNLE9BQU8sbUJBQW1CO0lBQWhDO1FBY0UsZ0RBQWdEO1FBQ3hDLGFBQVEsR0FBUSxJQUFJLENBQUM7SUFzQi9CLENBQUM7SUFqQ0MsYUFBYTtJQUNiLHVDQUF1QztJQUN2QyxjQUFjO0lBQ2QsTUFBTSxLQUFLLFFBQVE7UUFDakIsSUFBSSxtQkFBbUIsQ0FBQyxTQUFTLEtBQUssSUFBSTtZQUN4QyxtQkFBbUIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBRTVELE9BQU8sbUJBQW1CLENBQUMsU0FBUyxDQUFDO0lBQ3ZDLENBQUM7SUFLRCxhQUFhO0lBQ2IsNkRBQTZEO0lBQzdELGNBQWM7SUFDUCxJQUFJO1FBQ1QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUM1RCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGFBQWE7SUFDYiwrQkFBK0I7SUFDL0IsY0FBYztJQUNQLEtBQUs7UUFDVixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzdCLElBQUksUUFBUSxJQUFJLElBQUksRUFBRTtZQUNwQixNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQzdELFFBQVEsRUFBRSxDQUFDO1NBQ1o7SUFDSCxDQUFDOztBQWxDYyw2QkFBUyxHQUFHLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9nZ2VyfSBmcm9tIFwiLi9Mb2dnZXJcIjtcclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vIEhlbHBlciBjbGFzcyBmb3Igc3luY2hyb25pemVkIGV4ZWN1dGlvbi5cclxuLy8vIEl0IHdvcmtzIGJ5IGNyZWF0aW5nIGEgcHJvbWlzZSBhbmQgdGhlbiB3YWl0aW5nIGZvciB0aGUgcHJvbWlzZSB0byBiZSBjb21wbGV0ZWRcclxuLy8vIDwvc3VtbWFyeT5cclxuLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIFN5bmNFeGVjdXRpb25IZWxwZXIge1xyXG5cclxuICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2UgPSBudWxsO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGdldCBpbnN0YW5jZSBvZiBTeW5jRXhlY3V0aW9uSGVscGVyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzdGF0aWMgZ2V0IEluc3RhbmNlKCk6IFN5bmNFeGVjdXRpb25IZWxwZXIge1xyXG4gICAgaWYgKFN5bmNFeGVjdXRpb25IZWxwZXIuX2luc3RhbmNlID09PSBudWxsKVxyXG4gICAgICBTeW5jRXhlY3V0aW9uSGVscGVyLl9pbnN0YW5jZSA9IG5ldyBTeW5jRXhlY3V0aW9uSGVscGVyKCk7XHJcblxyXG4gICAgcmV0dXJuIFN5bmNFeGVjdXRpb25IZWxwZXIuX2luc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgLy8gcmVzb2x2ZXIgaXMgY2FsbGVyIHdoZW4gcHJvbWlzZSBpcyBmdWxsZmlsbGVkXHJcbiAgcHJpdmF0ZSByZXNvbHZlcjogYW55ID0gbnVsbDtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBUbyB3YWl0LCBjcmVhdGUgYSBwcm9taXNlIGFuZCBhZGQgd2FpdCBmb3IgaXQgdG8gY29tcGxldGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHB1YmxpYyBXYWl0KCk6IGFueSB7XHJcbiAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVEZXZUb0xvZyhcIlN5bmNFeGVjdXRpb25IZWxwZXIuV2FpdCgpXCIpO1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5yZXNvbHZlciA9IHJlc29sdmU7XHJcbiAgICB9KS50aGVuKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIFRvIHJlc3VtZSBjYWxsIHRoZSByZXNvbHZlclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHVibGljIFB1bHNlKCkge1xyXG4gICAgbGV0IHJlc29sdmVyID0gdGhpcy5yZXNvbHZlcjtcclxuICAgIGlmIChyZXNvbHZlciAhPSBudWxsKSB7XHJcbiAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZURldlRvTG9nKFwiU3luY0V4ZWN1dGlvbkhlbHBlci5QdWxzZSgpXCIpO1xyXG4gICAgICByZXNvbHZlcigpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3luY0V4ZWN1dGlvbkhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3V0aWxzL3NyYy9TeW5jRXhlY3V0aW9uSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFPaEMsTUFBTSxPQUFPLG1CQUFtQjtJQUFoQztRQWVVLGFBQVEsR0FBUSxJQUFJLENBQUM7SUFzQi9CLENBQUM7SUE5QkMsTUFBTSxLQUFLLFFBQVE7UUFDakIsSUFBSSxtQkFBbUIsQ0FBQyxTQUFTLEtBQUssSUFBSTtZQUN4QyxtQkFBbUIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBRTVELE9BQU8sbUJBQW1CLENBQUMsU0FBUyxDQUFDO0lBQ3ZDLENBQUM7SUFRTSxJQUFJO1FBQ1QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUM1RCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUtNLEtBQUs7UUFDVixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzdCLElBQUksUUFBUSxJQUFJLElBQUksRUFBRTtZQUNwQixNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQzdELFFBQVEsRUFBRSxDQUFDO1NBQ1o7SUFDSCxDQUFDOztBQWxDYyw2QkFBUyxHQUFHLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9nZ2VyfSBmcm9tIFwiLi9Mb2dnZXJcIjtcclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vIEhlbHBlciBjbGFzcyBmb3Igc3luY2hyb25pemVkIGV4ZWN1dGlvbi5cclxuLy8vIEl0IHdvcmtzIGJ5IGNyZWF0aW5nIGEgcHJvbWlzZSBhbmQgdGhlbiB3YWl0aW5nIGZvciB0aGUgcHJvbWlzZSB0byBiZSBjb21wbGV0ZWRcclxuLy8vIDwvc3VtbWFyeT5cclxuLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIFN5bmNFeGVjdXRpb25IZWxwZXIge1xyXG5cclxuICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2UgPSBudWxsO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGdldCBpbnN0YW5jZSBvZiBTeW5jRXhlY3V0aW9uSGVscGVyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzdGF0aWMgZ2V0IEluc3RhbmNlKCk6IFN5bmNFeGVjdXRpb25IZWxwZXIge1xyXG4gICAgaWYgKFN5bmNFeGVjdXRpb25IZWxwZXIuX2luc3RhbmNlID09PSBudWxsKVxyXG4gICAgICBTeW5jRXhlY3V0aW9uSGVscGVyLl9pbnN0YW5jZSA9IG5ldyBTeW5jRXhlY3V0aW9uSGVscGVyKCk7XHJcblxyXG4gICAgcmV0dXJuIFN5bmNFeGVjdXRpb25IZWxwZXIuX2luc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgLy8gcmVzb2x2ZXIgaXMgY2FsbGVyIHdoZW4gcHJvbWlzZSBpcyBmdWxsZmlsbGVkXHJcbiAgcHJpdmF0ZSByZXNvbHZlcjogYW55ID0gbnVsbDtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBUbyB3YWl0LCBjcmVhdGUgYSBwcm9taXNlIGFuZCBhZGQgd2FpdCBmb3IgaXQgdG8gY29tcGxldGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHB1YmxpYyBXYWl0KCk6IGFueSB7XHJcbiAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVEZXZUb0xvZyhcIlN5bmNFeGVjdXRpb25IZWxwZXIuV2FpdCgpXCIpO1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5yZXNvbHZlciA9IHJlc29sdmU7XHJcbiAgICB9KS50aGVuKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIFRvIHJlc3VtZSBjYWxsIHRoZSByZXNvbHZlclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHVibGljIFB1bHNlKCkge1xyXG4gICAgbGV0IHJlc29sdmVyID0gdGhpcy5yZXNvbHZlcjtcclxuICAgIGlmIChyZXNvbHZlciAhPSBudWxsKSB7XHJcbiAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZURldlRvTG9nKFwiU3luY0V4ZWN1dGlvbkhlbHBlci5QdWxzZSgpXCIpO1xyXG4gICAgICByZXNvbHZlcigpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -11,13 +11,6 @@ const IDX_DAY = 2;
11
11
  const IDX_DOY = 3;
12
12
  export class UtilDateJpn {
13
13
  constructor() {
14
- /// <summary>
15
- /// JPN: Japanese date picture support
16
- /// Utility Class for Japanese date
17
- /// </summary>
18
- /// <author> Toshiro Nakayoshi (MSJ)
19
- /// </author>
20
- // ---- gengo (the name of an era) ---------------------------------------
21
14
  this.MaxGengo = MAX_GENGO;
22
15
  }
23
16
  static getInstance() {
@@ -43,18 +36,6 @@ export class UtilDateJpn {
43
36
  }
44
37
  return UtilDateJpn.JmonthStr[month];
45
38
  }
46
- /// <summary>
47
- /// Convert a year (A.D.) into Japanese year of an era
48
- /// This method is modeled after "date_jpn_year_ofs" function in
49
- /// "\mglocal\jpn\jpndate_jpn.cpp".
50
- /// </summary>
51
- /// <param name = "intYear:">year (A.D.)
52
- /// </param>
53
- /// <param name = "intDoy:">DOY
54
- /// </param>
55
- /// <returns> year of an era.
56
- /// if either param is invalid, it returns 0.
57
- /// </returns>
58
39
  date_jpn_year_ofs(intYear, intDoy) {
59
40
  let result;
60
41
  if (intYear < 1 || intDoy < 1) {
@@ -72,20 +53,6 @@ export class UtilDateJpn {
72
53
  }
73
54
  return result;
74
55
  }
75
- /// <summary>
76
- /// Convert a year (A.D.) into a name of a Japanese era
77
- /// This method is modeled after "date_jpn_yr_2_a" function in
78
- /// "\mglocal\jpn\jpndate_jpn.cpp".
79
- /// </summary>
80
- /// <param name = "intYear:">year (A.D.)
81
- /// </param>
82
- /// <param name = "intDoy:">DOY
83
- /// </param>
84
- /// <param name = "isKanji:">return a full name (true) or the first letter (false).
85
- /// </param>
86
- /// <returns> name of an era
87
- /// if either param is invalid, it returns "?".
88
- /// </returns>
89
56
  date_jpn_yr_2_a(intYear, intDoy, isKanji) {
90
57
  let num;
91
58
  if (intYear < 1 || intDoy < 1) {
@@ -109,17 +76,6 @@ export class UtilDateJpn {
109
76
  }
110
77
  return result;
111
78
  }
112
- /// <summary>
113
- /// Get the first year (A.D.) of a specified Japanese era
114
- /// This method is modeled after "date_jpn_yr_4_a" function in
115
- /// "\mglocal\jpn\jpndate_jpn.cpp".
116
- /// </summary>
117
- /// <param name = "ucp_str:">name of a specified Japanese era
118
- /// </param>
119
- /// <param name = "s_len:">length (the number of bytes) of ucp_str
120
- /// </param>
121
- /// <returns> year (A.D.)
122
- /// </returns>
123
79
  date_jpn_yr_4_a(ucp_str, s_len) {
124
80
  let i = this.MaxGengo - 1;
125
81
  if (s_len > 0) {
@@ -158,17 +114,6 @@ export class UtilDateJpn {
158
114
  }
159
115
  return result;
160
116
  }
161
- /// <summary>
162
- /// Get the name of an era in date string
163
- /// </summary>
164
- /// <param name = "strDate:">string of input strDate
165
- /// </param>
166
- /// <param name = "strPicture:">string of picture
167
- /// </param>
168
- /// <param name = "intStartPos:">start position to search
169
- /// </param>
170
- /// <returns> name of an era
171
- /// </returns>
172
117
  static getEraNameStrInDate(strDate, strPicture, intStartPos) {
173
118
  let result = null;
174
119
  let intPicIdxOfs = 0;
@@ -187,7 +132,6 @@ export class UtilDateJpn {
187
132
  intLetters = 2;
188
133
  }
189
134
  else {
190
- // If "strDate" contains DBCS, the position of "strPicture" has to skip next index.
191
135
  if (i < strDate.length) {
192
136
  if (!UtilStrByteMode.isHalfWidth(strDate[i]) && UtilStrByteMode.isHalfWidth(strPicture[i + intPicIdxOfs])) {
193
137
  intPicIdxOfs = intPicIdxOfs + 1;
@@ -199,19 +143,10 @@ export class UtilDateJpn {
199
143
  }
200
144
  }
201
145
  result = strDate.substr(i, intLetters);
202
- break; // exit loop
146
+ break;
203
147
  }
204
148
  return result;
205
149
  }
206
- /// <summary>
207
- /// Get the length of the name of an era in picture
208
- /// </summary>
209
- /// <param name = "strPicture">string of picture
210
- /// </param>
211
- /// <param name = "intStartPos">start position to search
212
- /// </param>
213
- /// <returns> length of the name (the number of bytes)
214
- /// </returns>
215
150
  static getEraNameLenInPicture(strPicture, intStartPos) {
216
151
  let intLetters = 0;
217
152
  for (let i = intStartPos; i < strPicture.length; i = i + 1) {
@@ -234,15 +169,6 @@ export class UtilDateJpn {
234
169
  }
235
170
  return intLetters;
236
171
  }
237
- /// <summary>
238
- /// Get the start year of an era in picture
239
- /// </summary>
240
- /// <param name = "strDate:">string of input strDate
241
- /// </param>
242
- /// <param name = "strPicture:">string of picture
243
- /// </param>
244
- /// <returns> start year of the era
245
- /// </returns>
246
172
  getStartYearOfEra(strDate, strPicture) {
247
173
  let eraNameStrInDate = UtilDateJpn.getEraNameStrInDate(strDate, strPicture, 0);
248
174
  let result;
@@ -261,13 +187,7 @@ export class UtilDateJpn {
261
187
  }
262
188
  return result;
263
189
  }
264
- /// <summary> Add extra Gengo data into the Gengo tables</summary>
265
- /// <param name="strExtraGengo:">
266
- /// </param>
267
- /// <returns>
268
- /// </returns>
269
190
  addExtraGengo(strExtraGengo) {
270
- // e.g. strExtraGengo = "2012/04/01,092,AaABCD;2013/04/01,091,WwWXYZ;"
271
191
  let strGengoInfo = strExtraGengo.split(';');
272
192
  for (let i = 0; i < strGengoInfo.length; i = i + 1) {
273
193
  if (strGengoInfo[i].length > 0) {
@@ -275,13 +195,13 @@ export class UtilDateJpn {
275
195
  if (strTok.length === 3 && strTok[0].length > 0 && strTok[1].length > 0 && strTok[2].length > 0) {
276
196
  let strDate = strTok[0].split('/');
277
197
  if (strDate.length === 3 && strDate[0].length > 0 && strDate[1].length > 0 && strDate[2].length > 0) {
278
- UtilDateJpn.GengoStr[MAX_GENGO + i][0] = strTok[2].substr(0, 1); // symbol name (upper case): A
279
- UtilDateJpn.GengoStr[MAX_GENGO + i][1] = strTok[2].substr(1, 1); // symbol name (lower case): a
280
- UtilDateJpn.GengoStr[MAX_GENGO + i][2] = strTok[2].substr(2); // gengo name: ABCD
281
- UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][0] = NNumber.Parse(strDate[0]); // start year: 2012
282
- UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][1] = NNumber.Parse(strDate[1]); // start month: 4
283
- UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][2] = NNumber.Parse(strDate[2]); // start day: 1
284
- UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][3] = NNumber.Parse(strTok[1]); // days since January 1: 92
198
+ UtilDateJpn.GengoStr[MAX_GENGO + i][0] = strTok[2].substr(0, 1);
199
+ UtilDateJpn.GengoStr[MAX_GENGO + i][1] = strTok[2].substr(1, 1);
200
+ UtilDateJpn.GengoStr[MAX_GENGO + i][2] = strTok[2].substr(2);
201
+ UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][0] = NNumber.Parse(strDate[0]);
202
+ UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][1] = NNumber.Parse(strDate[1]);
203
+ UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][2] = NNumber.Parse(strDate[2]);
204
+ UtilDateJpn.StartDayOfGengo[MAX_GENGO + i][3] = NNumber.Parse(strTok[1]);
285
205
  this.MaxGengo++;
286
206
  }
287
207
  }
@@ -318,4 +238,4 @@ UtilDateJpn.StartDayOfGengo = [
318
238
  [0, 0, 0, 0],
319
239
  [0, 0, 0, 0]
320
240
  ];
321
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbERhdGVKcG4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91dGlscy9zcmMvVXRpbERhdGVKcG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQVUsT0FBTyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsTUFBTSxTQUFTLEdBQVcsQ0FBQyxDQUFDO0FBQzVCLE1BQU0sbUJBQW1CLEdBQVcsQ0FBQyxDQUFDO0FBQ3RDLE1BQU0sbUJBQW1CLEdBQVcsQ0FBQyxDQUFDO0FBQ3RDLE1BQU0sU0FBUyxHQUFXLENBQUMsQ0FBQztBQUM1QixNQUFNLFFBQVEsR0FBVyxDQUFDLENBQUM7QUFDM0IsTUFBTSxTQUFTLEdBQVcsQ0FBQyxDQUFDO0FBQzVCLE1BQU0sT0FBTyxHQUFXLENBQUMsQ0FBQztBQUMxQixNQUFNLE9BQU8sR0FBVyxDQUFDLENBQUM7QUFHMUIsTUFBTSxPQUFPLFdBQVc7SUFBeEI7UUFDRSxhQUFhO1FBQ2Isd0NBQXdDO1FBQ3hDLHFDQUFxQztRQUNyQyxjQUFjO1FBQ2QscUNBQXFDO1FBQ3JDLGFBQWE7UUFpQ2IsMkVBQTJFO1FBQ25FLGFBQVEsR0FBVyxTQUFTLENBQUM7SUF3UnZDLENBQUM7SUF0UkMsTUFBTSxDQUFDLFdBQVc7UUFDaEIsSUFBSSxXQUFXLENBQUMsU0FBUyxLQUFLLElBQUksRUFBRTtZQUNsQyxXQUFXLENBQUMsU0FBUyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7U0FDM0M7UUFDRCxPQUFPLFdBQVcsQ0FBQyxTQUFTLENBQUM7SUFDL0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXO1FBQ2hCLE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMs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bkIsQ0FBQyxJQUFJLEVBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7SUFDbkIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7SUFDbkIsQ0FBQyxJQUFJLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBSSxDQUFDLENBQUM7SUFDbkIsQ0FBQyxJQUFJLEVBQUcsQ0FBQyxFQUFHLENBQUMsRUFBRSxHQUFHLENBQUM7SUFDbkIsQ0FBQyxDQUFDLEVBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDYixDQUFDLENBQUMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNiLENBQUMsQ0FBQyxFQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0NBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UElDSW50ZXJmYWNlfSBmcm9tIFwiLi9QSUNJbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtVdGlsU3RyQnl0ZU1vZGV9IGZyb20gXCIuL1V0aWxTdHJCeXRlTW9kZVwiO1xyXG5pbXBvcnQge05TdHJpbmcsIE5OdW1iZXJ9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5cclxuY29uc3QgTUFYX0dFTkdPOiBudW1iZXIgPSA2O1xyXG5jb25zdCBJRFhfVVBQRVJDQVNFX0FMUEhBOiBudW1iZXIgPSAwO1xyXG5jb25zdCBJRFhfTE9XRVJDQVNFX0FMUEhBOiBudW1iZXIgPSAxO1xyXG5jb25zdCBJRFhfS0FOSkk6IG51bWJlciA9IDI7XHJcbmNvbnN0IElEWF9ZRUFSOiBudW1iZXIgPSAwO1xyXG5jb25zdCBJRFhfTU9OVEg6IG51bWJlciA9IDE7XHJcbmNvbnN0IElEWF9EQVk6IG51bWJlciA9IDI7XHJcbmNvbnN0IElEWF9ET1k6IG51bWJlciA9IDM7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFV0aWxEYXRlSnBuIHtcclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgSlBOOiBKYXBhbmVzZSBkYXRlIHBpY3R1cmUgc3VwcG9ydFxyXG4gIC8vLyAgIFV0aWxpdHkgQ2xhc3MgZm9yIEphcGFuZXNlIGRhdGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8YXV0aG9yPiAgVG9zaGlybyBOYWtheW9zaGkgKE1TSilcclxuICAvLy8gPC9hdXRob3I+XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogVXRpbERhdGVKcG4gPSBudWxsO1xyXG5cclxuICBwcml2YXRlIHN0YXRpYyBKd2Vla1N0cjogc3RyaW5nW10gPSBbXHJcbiAgICBcIiAgIFwiLCBcIuaXpeabnOaXpVwiLCBcIuaciOabnOaXpVwiLCBcIueBq+abnOaXpVwiLCBcIuawtOabnOaXpVwiLCBcIuacqOabnOaXpVwiLCBcIumHkeabnOaXpVwiLCBcIuWcn+abnOaXpVwiXHJcbiAgXTtcclxuICBwcml2YXRlIHN0YXRpYyBKbW9udGhTdHI6IHN0cmluZ1tdID0gW1xyXG4gICAgXCJcIiwgXCIgMeaciFwiLCBcIiAy5pyIXCIsIFwiIDPmnIhcIiwgXCIgNOaciFwiLCBcIiA15pyIXCIsIFwiIDbmnIhcIiwgXCIgN+aciFwiLCBcIiA45pyIXCIsIFwiIDnmnIhcIiwgXCIxMOaciFwiLCBcIjEx5pyIXCIsIFwiMTLmnIhcIlxyXG4gIF07XHJcbiAgcHJpdmF0ZSBzdGF0aWMgR2VuZ29TdHI6IHN0cmluZ1tdW10gPSBbXHJcbiAgICBbXCI/XCIsIFwiP1wiLCBcIj8/Pz9cIl0sXHJcbiAgICBbXCJNXCIsIFwibVwiLCBcIuaYjuayu1wiXSxcclxuICAgIFtcIlRcIiwgXCJ0XCIsIFwi5aSn5q2jXCJdLFxyXG4gICAgW1wiU1wiLCBcInNcIiwgXCLmmK3lkoxcIl0sXHJcbiAgICBbXCJIXCIsIFwiaFwiLCBcIuW5s+aIkFwiXSxcclxuICAgIFtcIlJcIiwgXCJyXCIsIFwi5Luk5ZKMXCJdLFxyXG4gICAgW1wiP1wiLCBcIj9cIiwgXCLvvJ/vvJ9cIl0sXHJcbiAgICBbXCI/XCIsIFwiP1wiLCBcIu+8n++8n1wiXSxcclxuICAgIFtcIj9cIiwgXCI/XCIsIFwi77yf77yfXCJdXHJcbiAgXTtcclxuICBwcml2YXRlIHN0YXRpYyBTdGFydERheU9mR2VuZ286IG51bWJlcltdW10gPSBbXHJcbiAgICBbICAgMSwgIDEsICAxLCAgIDFdLFxyXG4gICAgWzE4NjgsICA5LCAgOCwgMjUyXSxcclxuICAgIFsxOTEyLCAgNiwgMzAsIDIxMl0sXHJcbiAgICBbMTkyNiwgMTIsIDI1LCAzNTldLFxyXG4gICAgWzE5ODksICAxLCAgOCwgICA4XSxcclxuICAgIFsyMDE5LCAgNSwgIDEsIDEyMV0sXHJcbiAgICBbMCwgIDAsIDAsIDBdLCAvLyByZXNlcnZlIGZvciBleHRyYSBnZW5nbyB4IDNcclxuICAgIFswLCAgMCwgMCwgMF0sXHJcbiAgICBbMCwgIDAsIDAsIDBdXHJcbiAgXTtcclxuXHJcbiAgLy8gLS0tLSBnZW5nbyAodGhlIG5hbWUgb2YgYW4gZXJhKSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgcHJpdmF0ZSBNYXhHZW5nbzogbnVtYmVyID0gTUFYX0dFTkdPO1xyXG5cclxuICBzdGF0aWMgZ2V0SW5zdGFuY2UoKTogVXRpbERhdGVKcG4ge1xyXG4gICAgaWYgKFV0aWxEYXRlSnBuLl9pbnN0YW5jZSA9PT0gbnVsbCkge1xyXG4gICAgICBVdGlsRGF0ZUpwbi5faW5zdGFuY2UgPSBuZXcgVXRpbERhdGVKcG4oKTtcclxuICAgIH1cclxuICAgIHJldHVybiBVdGlsRGF0ZUpwbi5faW5zdGFuY2U7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0QXJyYXlEb3coKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIFV0aWxEYXRlSnBuLkp3ZWVrU3RyO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldFN0ckRvdyhpbnRJZHg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgZmxhZzogYm9vbGVhbiA9IGludElkeCA8IDAgfHwgNyA8IGludElkeDtcclxuICAgIGlmIChmbGFnKSB7XHJcbiAgICAgIGludElkeCA9IDA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gVXRpbERhdGVKcG4uSndlZWtTdHJbaW50SWR4XTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjb252ZXJ0U3RyTW9udGgobW9udGg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgZmxhZzogYm9vbGVhbiA9IG1vbnRoIDwgMCB8fCAxMiA8IG1vbnRoO1xyXG4gICAgaWYgKGZsYWcpIHtcclxuICAgICAgbW9udGggPSAwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFV0aWxEYXRlSnBuLkptb250aFN0clttb250aF07XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ29udmVydCBhIHllYXIgKEEuRC4pIGludG8gSmFwYW5lc2UgeWVhciBvZiBhbiBlcmFcclxuICAvLy8gICBUaGlzIG1ldGhvZCBpcyBtb2RlbGVkIGFmdGVyIFwiZGF0ZV9qcG5feWVhcl9vZnNcIiBmdW5jdGlvbiBpblxyXG4gIC8vLyAgIFwiXFxtZ2xvY2FsXFxqcG5cXGpwbmRhdGVfanBuLmNwcFwiLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpbnRZZWFyOlwiPnllYXIgKEEuRC4pXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpbnREb3k6XCI+RE9ZXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiB5ZWFyIG9mIGFuIGVyYS5cclxuICAvLy8gICBpZiBlaXRoZXIgcGFyYW0gaXMgaW52YWxpZCwgaXQgcmV0dXJucyAwLlxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgZGF0ZV9qcG5feWVhcl9vZnMoaW50WWVhcjogbnVtYmVyLCBpbnREb3k6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBsZXQgcmVzdWx0OiBudW1iZXI7XHJcbiAgICBpZiAoaW50WWVhciA8IDEgfHwgaW50RG95IDwgMSkge1xyXG4gICAgICByZXN1bHQgPSAwO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBudW06IG51bWJlciA9IHRoaXMuTWF4R2VuZ28gLSAxO1xyXG4gICAgICB3aGlsZSAoaW50WWVhciA8IFV0aWxEYXRlSnBuLlN0YXJ0RGF5T2ZHZW5nb1tudW1dWzBdKSB7XHJcbiAgICAgICAgbnVtID0gbnVtIC0gMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaW50WWVhciA9PT0gVXRpbERhdGVKcG4uU3RhcnREYXlPZkdlbmdvW251bV1bMF0gJiYgaW50RG95IDwgVXRpbERhdGVKcG4uU3RhcnREYXlPZkdlbmdvW251bV1bM10pIHtcclxuICAgICAgICBudW0gPSBudW0gLSAxO1xyXG4gICAgICB9XHJcbiAgICAgIHJlc3VsdCA9IGludFllYXIgLSBVdGlsRGF0ZUpwbi5TdGFydERheU9mR2VuZ29bbnVtXVswXSArIDE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENvbnZlcnQgYSB5ZWFyIChBLkQuKSBpbnRvIGEgbmFtZSBvZiBhIEphcGFuZXNlIGVyYVxyXG4gIC8vLyAgIFRoaXMgbWV0aG9kIGlzIG1vZGVsZWQgYWZ0ZXIgXCJkYXRlX2pwbl95cl8yX2FcIiBmdW5jdGlvbiBpblxyXG4gIC8vLyAgIFwiXFxtZ2xvY2FsXFxqcG5cXGpwbmRhdGVfanBuLmNwcFwiLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpbnRZZWFyOlwiPnllYXIgKEEuRC4pXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpbnREb3k6XCI+RE9ZXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpc0thbmppOlwiPnJldHVybiBhIGZ1bGwgbmFtZSAodHJ1ZSkgb3IgdGhlIGZpcnN0IGxldHRlciAoZmFsc2UpLlxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gbmFtZSBvZiBhbiBlcmFcclxuICAvLy8gICBpZiBlaXRoZXIgcGFyYW0gaXMgaW52YWxpZCwgaXQgcmV0dXJucyBcIj9cIi5cclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIGRhdGVfanBuX3lyXzJfYShpbnRZZWFyOiBudW1iZXIsIGludERveTogbnVtYmVyLCBpc0thbmppOiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgIGxldCBudW06IG51bWJlcjtcclxuICAgIGlmIChpbnRZZWFyIDwgMSB8fCBpbnREb3kgPCAxKSB7XHJcbiAgICAgIG51bSA9IDA7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgbnVtID0gdGhpcy5NYXhHZW5nbyAtIDE7XHJcbiAgICAgIHdoaWxlIChpbnRZZWFyIDwgVXRpbERhdGVKcG4uU3RhcnREYXlPZkdlbmdvW251bV1bMF0pIHtcclxuICAgICAgICBudW0gPSBudW0gLSAxO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbnRZZWFyID09PSBVdGlsRGF0ZUpwbi5TdGFydERheU9mR2VuZ29bbnVtXVswXSAmJiBpbnREb3kgPCBVdGlsRGF0ZUpwbi5TdGFydERheU9mR2VuZ29bbnVtXVszXSkge1xyXG4gICAgICAgIG51bSA9IG51bSAtIDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCByZXN1bHQ6IHN0cmluZztcclxuICAgIGlmIChpc0thbmppKSB7XHJcbiAgICAgIHJlc3VsdCA9IFV0aWxEYXRlSnBuLkdlbmdvU3RyW251bV1bMl07XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmVzdWx0ID0gVXRpbERhdGVKcG4uR2VuZ29TdHJbbnVtXVswXTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgR2V0IHRoZSBmaXJzdCB5ZWFyIChBLkQuKSBvZiBhIHNwZWNpZmllZCBKYXBhbmVzZSBlcmFcclxuICAvLy8gICBUaGlzIG1ldGhvZCBpcyBtb2RlbGVkIGFmdGVyIFwiZGF0ZV9qcG5feXJfNF9hXCIgZnVuY3Rpb24gaW5cclxuICAvLy8gICBcIlxcbWdsb2NhbFxcanBuXFxqcG5kYXRlX2pwbi5jcHBcIi5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidWNwX3N0cjpcIj5uYW1lIG9mIGEgc3BlY2lmaWVkIEphcGFuZXNlIGVyYVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic19sZW46XCI+bGVuZ3RoICh0aGUgbnVtYmVyIG9mIGJ5dGVzKSBvZiB1Y3Bfc3RyXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiB5ZWFyIChBLkQuKVxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBkYXRlX2pwbl95cl80X2EodWNwX3N0cjogc3RyaW5nLCBzX2xlbjogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGxldCBpOiBudW1iZXIgPSB0aGlzLk1heEdlbmdvIC0gMTtcclxuICAgIGlmIChzX2xlbiA+IDApIHtcclxuICAgICAgaWYgKHNfbGVuID4gMSkge1xyXG4gICAgICAgIHVjcF9zdHIgPSBVdGlsU3RyQnl0ZU1vZGUubGVmdEIodWNwX3N0ciwgc19sZW4pO1xyXG4gICAgICB9XHJcbiAgICAgIHdoaWxlIChpID4gMCkge1xyXG4gICAgICAgIGlmIChzX2xlbiA9PT0gMSkge1xyXG4gICAgICAgICAgaWYgKHVjcF9zdHIgPT09IFV0aWxEYXRlSnBuLkdlbmdvU3RyW2ldWzBdIHx8IHVjcF9zdHIgPT09IFV0aWxEYXRlSnBuLkdlbmdvU3RyW2ldWzFdKSB7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChzX2xlbiA+IDEpIHtcclxuICAgICAgICAgICAgbGV0IHRleHQ6IHN0cmluZyA9IFV0aWxTdHJCeXRlTW9kZS5sZWZ0QihVdGlsRGF0ZUpwbi5HZW5nb1N0cltpXVsyXSwgc19sZW4pO1xyXG4gICAgICAgICAgICBpZiAodWNwX3N0ciA9PT0gdGV4dCkge1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGkgPSBpIC0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IHJlc3VsdDogbnVtYmVyO1xyXG4gICAgaWYgKGkgPiAwKSB7XHJcbiAgICAgIHJlc3VsdCA9IFV0aWxEYXRlSnBuLlN0YXJ0RGF5T2ZHZW5nb1tpXVswXTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCB0ZXh0OiBzdHJpbmcgPSB1Y3Bfc3RyLnN1YnN0cigwLCAxKTtcclxuICAgICAgaWYgKHRleHQgPT09IFwiIFwiIHx8IHRleHQgPT09IFwiP1wiKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gMTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXN1bHQgPSAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEdldCB0aGUgbmFtZSBvZiBhbiBlcmEgaW4gZGF0ZSBzdHJpbmdcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic3RyRGF0ZTpcIj5zdHJpbmcgb2YgaW5wdXQgc3RyRGF0ZVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic3RyUGljdHVyZTpcIj5zdHJpbmcgb2YgcGljdHVyZVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaW50U3RhcnRQb3M6XCI+c3RhcnQgcG9zaXRpb24gdG8gc2VhcmNoXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiBuYW1lIG9mIGFuIGVyYVxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0RXJhTmFtZVN0ckluRGF0ZShzdHJEYXRlOiBzdHJpbmcsIHN0clBpY3R1cmU6IHN0cmluZywgaW50U3RhcnRQb3M6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmcgPSBudWxsO1xyXG4gICAgbGV0IGludFBpY0lkeE9mczogbnVtYmVyID0gMDtcclxuICAgIGxldCBpOiBudW1iZXIgPSBpbnRTdGFydFBvcztcclxuICAgIHdoaWxlIChpICsgaW50UGljSWR4T2ZzIDwgc3RyUGljdHVyZS5sZW5ndGgpIHtcclxuICAgICAgbGV0IGludExldHRlcnM6IG51bWJlcjtcclxuICAgICAgaWYgKHN0clBpY3R1cmUuY2hhckNvZGVBdChpICsgaW50UGljSWR4T2ZzKSA9PT0gUElDSW50ZXJmYWNlLlBJQ19KWTEpIHtcclxuICAgICAgICBpbnRMZXR0ZXJzID0gMTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBpZiAoc3RyUGljdHVyZS5jaGFyQ29kZUF0KGkgKyBpbnRQaWNJZHhPZnMpID09PSBQSUNJbnRlcmZhY2UuUElDX0pZMikge1xyXG4gICAgICAgICAgaW50TGV0dGVycyA9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHN0clBpY3R1cmUuY2hhckNvZGVBdChpICsgaW50UGljSWR4T2ZzKSA9PT0gUElDSW50ZXJmYWNlLlBJQ19KWTQpIHtcclxuICAgICAgICAgICAgaW50TGV0dGVycyA9IDI7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBJZiBcInN0ckRhdGVcIiBjb250YWlucyBEQkNTLCB0aGUgcG9zaXRpb24gb2YgXCJzdHJQaWN0dXJlXCIgaGFzIHRvIHNraXAgbmV4dCBpbmRleC5cclxuICAgICAgICAgICAgaWYgKGkgPCBzdHJEYXRlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIGlmICghVXRpbFN0ckJ5dGVNb2RlLmlzSGFsZldpZHRoKHN0ckRhdGVbaV0pICYmIFV0aWxTdHJCeXRlTW9kZS5pc0hhbGZXaWR0aChzdHJQaWN0dXJlW2kgKyBpbnRQaWNJZHhPZnNdKSkge1xyXG4gICAgICAgICAgICAgICAgaW50UGljSWR4T2ZzID0gaW50UGljSWR4T2ZzICsgMTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaSA9IGkgKyAxO1xyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmVzdWx0ID0gc3RyRGF0ZS5zdWJzdHIoaSwgaW50TGV0dGVycyk7XHJcbiAgICAgIGJyZWFrOyAvLyBleGl0IGxvb3BcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgR2V0IHRoZSBsZW5ndGggb2YgdGhlIG5hbWUgb2YgYW4gZXJhIGluIHBpY3R1cmVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic3RyUGljdHVyZVwiPnN0cmluZyBvZiBwaWN0dXJlXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpbnRTdGFydFBvc1wiPnN0YXJ0IHBvc2l0aW9uIHRvIHNlYXJjaFxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gbGVuZ3RoIG9mIHRoZSBuYW1lICh0aGUgbnVtYmVyIG9mIGJ5dGVzKVxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0RXJhTmFtZUxlbkluUGljdHVyZShzdHJQaWN0dXJlOiBzdHJpbmcsIGludFN0YXJ0UG9zOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgbGV0IGludExldHRlcnM6IG51bWJlciA9IDA7XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSBpbnRTdGFydFBvczsgaSA8IHN0clBpY3R1cmUubGVuZ3RoOyBpID0gaSArIDEpIHtcclxuICAgICAgaWYgKHN0clBpY3R1cmUuY2hhckNvZGVBdChpKSA9PT0gUElDSW50ZXJmYWNlLlBJQ19KWTEpIHtcclxuICAgICAgICBpbnRMZXR0ZXJzID0gMTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBpZiAoc3RyUGljdHVyZS5jaGFyQ29kZUF0KGkpID09PSBQSUNJbnRlcmZhY2UuUElDX0pZMikge1xyXG4gICAgICAgICAgaW50TGV0dGVycyA9IDI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHN0clBpY3R1cmUuY2hhckNvZGVBdChpKSA9PT0gUElDSW50ZXJmYWNlLlBJQ19KWTQpIHtcclxuICAgICAgICAgICAgaW50TGV0dGVycyA9IDQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbnRMZXR0ZXJzID4gMCkge1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaW50TGV0dGVycztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBHZXQgdGhlIHN0YXJ0IHllYXIgb2YgYW4gZXJhIGluIHBpY3R1cmVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic3RyRGF0ZTpcIj5zdHJpbmcgb2YgaW5wdXQgc3RyRGF0ZVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic3RyUGljdHVyZTpcIj5zdHJpbmcgb2YgcGljdHVyZVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gc3RhcnQgeWVhciBvZiB0aGUgZXJhXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBnZXRTdGFydFllYXJPZkVyYShzdHJEYXRlOiBzdHJpbmcsIHN0clBpY3R1cmU6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICBsZXQgZXJhTmFtZVN0ckluRGF0ZTogc3RyaW5nID0gVXRpbERhdGVKcG4uZ2V0RXJhTmFtZVN0ckluRGF0ZShzdHJEYXRlLCBzdHJQaWN0dXJlLCAwKTtcclxuICAgIGxldCByZXN1bHQ6IG51bWJlcjtcclxuICAgIGlmIChlcmFOYW1lU3RySW5EYXRlID09PSBudWxsKSB7XHJcbiAgICAgIHJlc3VsdCA9IDA7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgbGV0IGVyYU5hbWVMZW5JblBpY3R1cmU6IG51bWJlciA9IFV0aWxEYXRlSnBuLmdldEVyYU5hbWVMZW5JblBpY3R1cmUoc3RyUGljdHVyZSwgMCk7XHJcbiAgICAgIGlmIChlcmFOYW1lTGVuSW5QaWN0dXJlID09PSAwKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gMDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBsZXQgaW50U3RhcnRZZWFyT2ZFcmE6IG51bWJlciA9IHRoaXMuZGF0ZV9qcG5feXJfNF9hKGVyYU5hbWVTdHJJbkRhdGUsIGVyYU5hbWVMZW5JblBpY3R1cmUpO1xyXG4gICAgICAgIHJlc3VsdCA9IGludFN0YXJ0WWVhck9mRXJhO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBBZGQgZXh0cmEgR2VuZ28gZGF0YSBpbnRvIHRoZSBHZW5nbyB0YWJsZXM8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwic3RyRXh0cmFHZW5nbzpcIj5cclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+XHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBhZGRFeHRyYUdlbmdvKHN0ckV4dHJhR2VuZ286IHN0cmluZyk6IHZvaWQge1xyXG4gICAgLy8gZS5nLiBzdHJFeHRyYUdlbmdvID0gXCIyMDEyLzA0LzAxLDA5MixBYUFCQ0Q7MjAxMy8wNC8wMSwwOTEsV3dXWFlaO1wiXHJcbiAgICBsZXQgc3RyR2VuZ29JbmZvOiBzdHJpbmdbXSA9IHN0ckV4dHJhR2VuZ28uc3BsaXQoJzsnKTtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBzdHJHZW5nb0luZm8ubGVuZ3RoOyBpID0gaSArIDEpIHtcclxuICAgICAgaWYgKHN0ckdlbmdvSW5mb1tpXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgbGV0IHN0clRvazogc3RyaW5nW10gPSBzdHJHZW5nb0luZm9baV0uc3BsaXQoJywnKTtcclxuICAgICAgICBpZiAoc3RyVG9rLmxlbmd0aCA9PT0gMyAmJiBzdHJUb2tbMF0ubGVuZ3RoID4gMCAmJiBzdHJUb2tbMV0ubGVuZ3RoID4gMCAmJiBzdHJUb2tbMl0ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgbGV0IHN0ckRhdGU6IHN0cmluZ1tdID0gc3RyVG9rWzBdLnNwbGl0KCcvJyk7XHJcbiAgICAgICAgICBpZiAoc3RyRGF0ZS5sZW5ndGggPT09IDMgJiYgc3RyRGF0ZVswXS5sZW5ndGggPiAwICYmIHN0ckRhdGVbMV0ubGVuZ3RoID4gMCAmJiBzdHJEYXRlWzJdLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgVXRpbERhdGVKcG4uR2VuZ29TdHJbTUFYX0dFTkdPICsgaV1bMF0gPSBzdHJUb2tbMl0uc3Vic3RyKDAsIDEpOyAvLyBzeW1ib2wgbmFtZSAodXBwZXIgY2FzZSk6IEFcclxuICAgICAgICAgICAgVXRpbERhdGVKcG4uR2VuZ29TdHJbTUFYX0dFTkdPICsgaV1bMV0gPSBzdHJUb2tbMl0uc3Vic3RyKDEsIDEpOyAvLyBzeW1ib2wgbmFtZSAobG93ZXIgY2FzZSk6IGFcclxuICAgICAgICAgICAgVXRpbERhdGVKcG4uR2VuZ29TdHJbTUFYX0dFTkdPICsgaV1bMl0gPSBzdHJUb2tbMl0uc3Vic3RyKDIpOyAgICAvLyBnZW5nbyBuYW1lOiBBQkNEXHJcblxyXG4gICAgICAgICAgICBVdGlsRGF0ZUpwbi5TdGFydERheU9mR2VuZ29bTUFYX0dFTkdPICsgaV1bMF0gPSBOTnVtYmVyLlBhcnNlKHN0ckRhdGVbMF0pOyAgICAvLyBzdGFydCB5ZWFyOiAyMDEyXHJcbiAgICAgICAgICAgIFV0aWxEYXRlSnBuLlN0YXJ0RGF5T2ZHZW5nb1tNQVhfR0VOR08gKyBpXVsxXSA9IE5OdW1iZXIuUGFyc2Uoc3RyRGF0ZVsxXSk7ICAgIC8vIHN0YXJ0IG1vbnRoOiA0XHJcbiAgICAgICAgICAgIFV0aWxEYXRlSnBuLlN0YXJ0RGF5T2ZHZW5nb1tNQVhfR0VOR08gKyBpXVsyXSA9IE5OdW1iZXIuUGFyc2Uoc3RyRGF0ZVsyXSk7ICAgIC8vIHN0YXJ0IGRheTogMVxyXG4gICAgICAgICAgICBVdGlsRGF0ZUpwbi5TdGFydERheU9mR2VuZ29bTUFYX0dFTkdPICsgaV1bM10gPSBOTnVtYmVyLlBhcnNlKHN0clRva1sxXSk7ICAgICAvLyBkYXlzIHNpbmNlIEphbnVhcnkgMTogOTJcclxuICAgICAgICAgICAgdGhpcy5NYXhHZW5nbysrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbERhdGVKcG4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91dGlscy9zcmMvVXRpbERhdGVKcG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQVUsT0FBTyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsTUFBTSxTQUFTLEdBQVcsQ0FBQyxDQUFDO0FBQzVCLE1BQU0sbUJBQW1CLEdBQVcsQ0FBQyxDQUFDO0FBQ3RDLE1BQU0sbUJBQW1CLEdBQVcsQ0FBQyxDQUFDO0FBQ3RDLE1BQU0sU0FBUyxHQUFXLENBQUMsQ0FBQztBQUM1QixNQUFNLFFBQVEsR0FBVyxDQUFDLENBQUM7QUFDM0IsTUFBTSxTQUFTLEdBQVcsQ0FBQyxDQUFDO0FBQzVCLE1BQU0sT0FBTyxHQUFXLENBQUMsQ0FBQztBQUMxQixNQUFNLE9BQU8sR0FBVyxDQUFDLENBQUM7QUFHMUIsTUFBTSxPQUFPLFdBQVc7SUFBeEI7UUF3Q1UsYUFBUSxHQUFXLFNBQVMsQ0FBQztJQXdSdkMsQ0FBQztJQXRSQyxNQUFNLENBQUMsV0FBVztRQUNoQixJQUFJLFdBQVcsQ0FBQyxTQUFTLEtBQUssSUFBSSxFQUFFO1lBQ2xDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztTQUMzQztRQUNELE9BQU8sV0FBVyxDQUFDLFNBQVMsQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVc7UUFDaEIsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDO0lBQzlCLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQWM7UUFDN0IsSUFBSSxJQUFJLEdBQVksTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQzdDLElB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QUFHLENBQUMsRUFBRyxDQUFDLEVBQUksQ0FBQyxDQUFDO0lBQ25CLENBQUMsSUFBSSxFQUFHLENBQUMsRUFBRyxDQUFDLEVBQUUsR0FBRyxDQUFDO0lBQ25CLENBQUMsQ0FBQyxFQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2IsQ0FBQyxDQUFDLEVBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDYixDQUFDLENBQUMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztDQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BJQ0ludGVyZmFjZX0gZnJvbSBcIi4vUElDSW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7VXRpbFN0ckJ5dGVNb2RlfSBmcm9tIFwiLi9VdGlsU3RyQnl0ZU1vZGVcIjtcclxuaW1wb3J0IHtOU3RyaW5nLCBOTnVtYmVyfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuXHJcbmNvbnN0IE1BWF9HRU5HTzogbnVtYmVyID0gNjtcclxuY29uc3QgSURYX1VQUEVSQ0FTRV9BTFBIQTogbnVtYmVyID0gMDtcclxuY29uc3QgSURYX0xPV0VSQ0FTRV9BTFBIQTogbnVtYmVyID0gMTtcclxuY29uc3QgSURYX0tBTkpJOiBudW1iZXIgPSAyO1xyXG5jb25zdCBJRFhfWUVBUjogbnVtYmVyID0gMDtcclxuY29uc3QgSURYX01PTlRIOiBudW1iZXIgPSAxO1xyXG5jb25zdCBJRFhfREFZOiBudW1iZXIgPSAyO1xyXG5jb25zdCBJRFhfRE9ZOiBudW1iZXIgPSAzO1xyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBVdGlsRGF0ZUpwbiB7XHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEpQTjogSmFwYW5lc2UgZGF0ZSBwaWN0dXJlIHN1cHBvcnRcclxuICAvLy8gICBVdGlsaXR5IENsYXNzIGZvciBKYXBhbmVzZSBkYXRlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPGF1dGhvcj4gIFRvc2hpcm8gTmFrYXlvc2hpIChNU0opXHJcbiAgLy8vIDwvYXV0aG9yPlxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IFV0aWxEYXRlSnBuID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgSndlZWtTdHI6IHN0cmluZ1tdID0gW1xyXG4gICAgXCIgICBcIiwgXCLml6Xmm5zml6VcIiwgXCLmnIjmm5zml6VcIiwgXCLngavmm5zml6VcIiwgXCLmsLTmm5zml6VcIiwgXCLmnKjmm5zml6VcIiwgXCLph5Hmm5zml6VcIiwgXCLlnJ/mm5zml6VcIlxyXG4gIF07XHJcbiAgcHJpdmF0ZSBzdGF0aWMgSm1vbnRoU3RyOiBzdHJpbmdbXSA9IFtcclxuICAgIFwiXCIsIFwiIDHmnIhcIiwgXCIgMuaciFwiLCBcIiAz5pyIXCIsIFwiIDTmnIhcIiwgXCIgNeaciFwiLCBcIiA25pyIXCIsIFwiIDfmnIhcIiwgXCIgOOaciFwiLCBcIiA55pyIXCIsIFwiMTDmnIhcIiwgXCIxMeaciFwiLCBcIjEy5pyIXCJcclxuICBdO1xyXG4gIHByaXZhdGUgc3RhdGljIEdlbmdvU3RyOiBzdHJpbmdbXVtdID0gW1xyXG4gICAgW1wiP1wiLCBcIj9cIiwgXCI/Pz8/XCJdLFxyXG4gICAgW1wiTVwiLCBcIm1cIiwgXCLmmI7msrtcIl0sXHJcbiAgICBbXCJUXCIsIFwidFwiLCBcIuWkp+ato1wiXSxcclxuICAgIFtcIlNcIiwgXCJzXCIsIFwi5pit5ZKMXCJdLFxyXG4gICAgW1wiSFwiLCBcImhcIiwgXCLlubPmiJBcIl0sXHJcbiAgICBbXCJSXCIsIFwiclwiLCBcIuS7pOWSjFwiXSxcclxuICAgIFtcIj9cIiwgXCI/XCIsIFwi77yf77yfXCJdLFxyXG4gICAgW1wiP1wiLCBcIj9cIiwgXCLvvJ/vvJ9cIl0sXHJcbiAgICBbXCI/XCIsIFwiP1wiLCBcIu+8n++8n1wiXVxyXG4gIF07XHJcbiAgcHJpdmF0ZSBzdGF0aWMgU3RhcnREYXlPZkdlbmdvOiBudW1iZXJbXVtdID0gW1xyXG4gICAgWyAgIDEsICAxLCAgMSwgICAxXSxcclxuICAgIFsxODY4LCAgOSwgIDgsIDI1Ml0sXHJcbiAgICBbMTkxMiwgIDYsIDMwLCAyMTJdLFxyXG4gICAgWzE5MjYsIDEyLCAyNSwgMzU5XSxcclxuICAgIFsxOTg5LCAgMSwgIDgsICAgOF0sXHJcbiAgICBbMjAxOSwgIDUsICAxLCAxMjFdLFxyXG4gICAgWzAsICAwLCAwLCAwXSwgLy8gcmVzZXJ2ZSBmb3IgZXh0cmEgZ2VuZ28geCAzXHJcbiAgICBbMCwgIDAsIDAsIDBdLFxyXG4gICAgWzAsICAwLCAwLCAwXVxyXG4gIF07XHJcblxyXG4gIC8vIC0tLS0gZ2VuZ28gKHRoZSBuYW1lIG9mIGFuIGVyYSkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIHByaXZhdGUgTWF4R2VuZ286IG51bWJlciA9IE1BWF9HRU5HTztcclxuXHJcbiAgc3RhdGljIGdldEluc3RhbmNlKCk6IFV0aWxEYXRlSnBuIHtcclxuICAgIGlmIChVdGlsRGF0ZUpwbi5faW5zdGFuY2UgPT09IG51bGwpIHtcclxuICAgICAgVXRpbERhdGVKcG4uX2luc3RhbmNlID0gbmV3IFV0aWxEYXRlSnBuKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gVXRpbERhdGVKcG4uX2luc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldEFycmF5RG93KCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBVdGlsRGF0ZUpwbi5Kd2Vla1N0cjtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRTdHJEb3coaW50SWR4OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IGZsYWc6IGJvb2xlYW4gPSBpbnRJZHggPCAwIHx8IDcgPCBpbnRJZHg7XHJcbiAgICBpZiAoZmxhZykge1xyXG4gICAgICBpbnRJZHggPSAwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFV0aWxEYXRlSnBuLkp3ZWVrU3RyW2ludElkeF07XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY29udmVydFN0ck1vbnRoKG1vbnRoOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IGZsYWc6IGJvb2xlYW4gPSBtb250aCA8IDAgfHwgMTIgPCBtb250aDtcclxuICAgIGlmIChmbGFnKSB7XHJcbiAgICAgIG1vbnRoID0gMDtcclxuICAgIH1cclxuICAgIHJldHVybiBVdGlsRGF0ZUpwbi5KbW9udGhTdHJbbW9udGhdO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENvbnZlcnQgYSB5ZWFyIChBLkQuKSBpbnRvIEphcGFuZXNlIHllYXIgb2YgYW4gZXJhXHJcbiAgLy8vICAgVGhpcyBtZXRob2QgaXMgbW9kZWxlZCBhZnRlciBcImRhdGVfanBuX3llYXJfb2ZzXCIgZnVuY3Rpb24gaW5cclxuICAvLy8gICBcIlxcbWdsb2NhbFxcanBuXFxqcG5kYXRlX2pwbi5jcHBcIi5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaW50WWVhcjpcIj55ZWFyIChBLkQuKVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaW50RG95OlwiPkRPWVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4geWVhciBvZiBhbiBlcmEuXHJcbiAgLy8vICAgaWYgZWl0aGVyIHBhcmFtIGlzIGludmFsaWQsIGl0IHJldHVybnMgMC5cclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIGRhdGVfanBuX3llYXJfb2ZzKGludFllYXI6IG51bWJlciwgaW50RG95OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgbGV0IHJlc3VsdDogbnVtYmVyO1xyXG4gICAgaWYgKGludFllYXIgPCAxIHx8IGludERveSA8IDEpIHtcclxuICAgICAgcmVzdWx0ID0gMDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBsZXQgbnVtOiBudW1iZXIgPSB0aGlzLk1heEdlbmdvIC0gMTtcclxuICAgICAgd2hpbGUgKGludFllYXIgPCBVdGlsRGF0ZUpwbi5TdGFydERheU9mR2VuZ29bbnVtXVswXSkge1xyXG4gICAgICAgIG51bSA9IG51bSAtIDE7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGludFllYXIgPT09IFV0aWxEYXRlSnBuLlN0YXJ0RGF5T2ZHZW5nb1tudW1dWzBdICYmIGludERveSA8IFV0aWxEYXRlSnBuLlN0YXJ0RGF5T2ZHZW5nb1tudW1dWzNdKSB7XHJcbiAgICAgICAgbnVtID0gbnVtIC0gMTtcclxuICAgICAgfVxyXG4gICAgICByZXN1bHQgPSBpbnRZZWFyIC0gVXRpbERhdGVKcG4uU3RhcnREYXlPZkdlbmdvW251bV1bMF0gKyAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBDb252ZXJ0IGEgeWVhciAoQS5ELikgaW50byBhIG5hbWUgb2YgYSBKYXBhbmVzZSBlcmFcclxuICAvLy8gICBUaGlzIG1ldGhvZCBpcyBtb2RlbGVkIGFmdGVyIFwiZGF0ZV9qcG5feXJfMl9hXCIgZnVuY3Rpb24gaW5cclxuICAvLy8gICBcIlxcbWdsb2NhbFxcanBuXFxqcG5kYXRlX2pwbi5jcHBcIi5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaW50WWVhcjpcIj55ZWFyIChBLkQuKVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaW50RG95OlwiPkRPWVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaXNLYW5qaTpcIj5yZXR1cm4gYSBmdWxsIG5hbWUgKHRydWUpIG9yIHRoZSBmaXJzdCBsZXR0ZXIgKGZhbHNlKS5cclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IG5hbWUgb2YgYW4gZXJhXHJcbiAgLy8vICAgaWYgZWl0aGVyIHBhcmFtIGlzIGludmFsaWQsIGl0IHJldHVybnMgXCI/XCIuXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBkYXRlX2pwbl95cl8yX2EoaW50WWVhcjogbnVtYmVyLCBpbnREb3k6IG51bWJlciwgaXNLYW5qaTogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICBsZXQgbnVtOiBudW1iZXI7XHJcbiAgICBpZiAoaW50WWVhciA8IDEgfHwgaW50RG95IDwgMSkge1xyXG4gICAgICBudW0gPSAwO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIG51bSA9IHRoaXMuTWF4R2VuZ28gLSAxO1xyXG4gICAgICB3aGlsZSAoaW50WWVhciA8IFV0aWxEYXRlSnBuLlN0YXJ0RGF5T2ZHZW5nb1tudW1dWzBdKSB7XHJcbiAgICAgICAgbnVtID0gbnVtIC0gMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaW50WWVhciA9PT0gVXRpbERhdGVKcG4uU3RhcnREYXlPZkdlbmdvW251bV1bMF0gJiYgaW50RG95IDwgVXRpbERhdGVKcG4uU3RhcnREYXlPZkdlbmdvW251bV1bM10pIHtcclxuICAgICAgICBudW0gPSBudW0gLSAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmc7XHJcbiAgICBpZiAoaXNLYW5qaSkge1xyXG4gICAgICByZXN1bHQgPSBVdGlsRGF0ZUpwbi5HZW5nb1N0cltudW1dWzJdO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJlc3VsdCA9IFV0aWxEYXRlSnBuLkdlbmdvU3RyW251bV1bMF07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEdldCB0aGUgZmlyc3QgeWVhciAoQS5ELikgb2YgYSBzcGVjaWZpZWQgSmFwYW5lc2UgZXJhXHJcbiAgLy8vICAgVGhpcyBtZXRob2QgaXMgbW9kZWxlZCBhZnRlciBcImRhdGVfanBuX3lyXzRfYVwiIGZ1bmN0aW9uIGluXHJcbiAgLy8vICAgXCJcXG1nbG9jYWxcXGpwblxcanBuZGF0ZV9qcG4uY3BwXCIuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInVjcF9zdHI6XCI+bmFtZSBvZiBhIHNwZWNpZmllZCBKYXBhbmVzZSBlcmFcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInNfbGVuOlwiPmxlbmd0aCAodGhlIG51bWJlciBvZiBieXRlcykgb2YgdWNwX3N0clxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4geWVhciAoQS5ELilcclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIHByaXZhdGUgZGF0ZV9qcG5feXJfNF9hKHVjcF9zdHI6IHN0cmluZywgc19sZW46IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBsZXQgaTogbnVtYmVyID0gdGhpcy5NYXhHZW5nbyAtIDE7XHJcbiAgICBpZiAoc19sZW4gPiAwKSB7XHJcbiAgICAgIGlmIChzX2xlbiA+IDEpIHtcclxuICAgICAgICB1Y3Bfc3RyID0gVXRpbFN0ckJ5dGVNb2RlLmxlZnRCKHVjcF9zdHIsIHNfbGVuKTtcclxuICAgICAgfVxyXG4gICAgICB3aGlsZSAoaSA+IDApIHtcclxuICAgICAgICBpZiAoc19sZW4gPT09IDEpIHtcclxuICAgICAgICAgIGlmICh1Y3Bfc3RyID09PSBVdGlsRGF0ZUpwbi5HZW5nb1N0cltpXVswXSB8fCB1Y3Bfc3RyID09PSBVdGlsRGF0ZUpwbi5HZW5nb1N0cltpXVsxXSkge1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBpZiAoc19sZW4gPiAxKSB7XHJcbiAgICAgICAgICAgIGxldCB0ZXh0OiBzdHJpbmcgPSBVdGlsU3RyQnl0ZU1vZGUubGVmdEIoVXRpbERhdGVKcG4uR2VuZ29TdHJbaV1bMl0sIHNfbGVuKTtcclxuICAgICAgICAgICAgaWYgKHVjcF9zdHIgPT09IHRleHQpIHtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpID0gaSAtIDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCByZXN1bHQ6IG51bWJlcjtcclxuICAgIGlmIChpID4gMCkge1xyXG4gICAgICByZXN1bHQgPSBVdGlsRGF0ZUpwbi5TdGFydERheU9mR2VuZ29baV1bMF07XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgdGV4dDogc3RyaW5nID0gdWNwX3N0ci5zdWJzdHIoMCwgMSk7XHJcbiAgICAgIGlmICh0ZXh0ID09PSBcIiBcIiB8fCB0ZXh0ID09PSBcIj9cIikge1xyXG4gICAgICAgIHJlc3VsdCA9IDE7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmVzdWx0ID0gMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBHZXQgdGhlIG5hbWUgb2YgYW4gZXJhIGluIGRhdGUgc3RyaW5nXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0ckRhdGU6XCI+c3RyaW5nIG9mIGlucHV0IHN0ckRhdGVcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0clBpY3R1cmU6XCI+c3RyaW5nIG9mIHBpY3R1cmVcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImludFN0YXJ0UG9zOlwiPnN0YXJ0IHBvc2l0aW9uIHRvIHNlYXJjaFxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gbmFtZSBvZiBhbiBlcmFcclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIHByaXZhdGUgc3RhdGljIGdldEVyYU5hbWVTdHJJbkRhdGUoc3RyRGF0ZTogc3RyaW5nLCBzdHJQaWN0dXJlOiBzdHJpbmcsIGludFN0YXJ0UG9zOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdDogc3RyaW5nID0gbnVsbDtcclxuICAgIGxldCBpbnRQaWNJZHhPZnM6IG51bWJlciA9IDA7XHJcbiAgICBsZXQgaTogbnVtYmVyID0gaW50U3RhcnRQb3M7XHJcbiAgICB3aGlsZSAoaSArIGludFBpY0lkeE9mcyA8IHN0clBpY3R1cmUubGVuZ3RoKSB7XHJcbiAgICAgIGxldCBpbnRMZXR0ZXJzOiBudW1iZXI7XHJcbiAgICAgIGlmIChzdHJQaWN0dXJlLmNoYXJDb2RlQXQoaSArIGludFBpY0lkeE9mcykgPT09IFBJQ0ludGVyZmFjZS5QSUNfSlkxKSB7XHJcbiAgICAgICAgaW50TGV0dGVycyA9IDE7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKHN0clBpY3R1cmUuY2hhckNvZGVBdChpICsgaW50UGljSWR4T2ZzKSA9PT0gUElDSW50ZXJmYWNlLlBJQ19KWTIpIHtcclxuICAgICAgICAgIGludExldHRlcnMgPSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChzdHJQaWN0dXJlLmNoYXJDb2RlQXQoaSArIGludFBpY0lkeE9mcykgPT09IFBJQ0ludGVyZmFjZS5QSUNfSlk0KSB7XHJcbiAgICAgICAgICAgIGludExldHRlcnMgPSAyO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gSWYgXCJzdHJEYXRlXCIgY29udGFpbnMgREJDUywgdGhlIHBvc2l0aW9uIG9mIFwic3RyUGljdHVyZVwiIGhhcyB0byBza2lwIG5leHQgaW5kZXguXHJcbiAgICAgICAgICAgIGlmIChpIDwgc3RyRGF0ZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICBpZiAoIVV0aWxTdHJCeXRlTW9kZS5pc0hhbGZXaWR0aChzdHJEYXRlW2ldKSAmJiBVdGlsU3RyQnl0ZU1vZGUuaXNIYWxmV2lkdGgoc3RyUGljdHVyZVtpICsgaW50UGljSWR4T2ZzXSkpIHtcclxuICAgICAgICAgICAgICAgIGludFBpY0lkeE9mcyA9IGludFBpY0lkeE9mcyArIDE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGkgPSBpICsgMTtcclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJlc3VsdCA9IHN0ckRhdGUuc3Vic3RyKGksIGludExldHRlcnMpO1xyXG4gICAgICBicmVhazsgLy8gZXhpdCBsb29wXHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEdldCB0aGUgbGVuZ3RoIG9mIHRoZSBuYW1lIG9mIGFuIGVyYSBpbiBwaWN0dXJlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0clBpY3R1cmVcIj5zdHJpbmcgb2YgcGljdHVyZVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaW50U3RhcnRQb3NcIj5zdGFydCBwb3NpdGlvbiB0byBzZWFyY2hcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IGxlbmd0aCBvZiB0aGUgbmFtZSAodGhlIG51bWJlciBvZiBieXRlcylcclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIHByaXZhdGUgc3RhdGljIGdldEVyYU5hbWVMZW5JblBpY3R1cmUoc3RyUGljdHVyZTogc3RyaW5nLCBpbnRTdGFydFBvczogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGxldCBpbnRMZXR0ZXJzOiBudW1iZXIgPSAwO1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gaW50U3RhcnRQb3M7IGkgPCBzdHJQaWN0dXJlLmxlbmd0aDsgaSA9IGkgKyAxKSB7XHJcbiAgICAgIGlmIChzdHJQaWN0dXJlLmNoYXJDb2RlQXQoaSkgPT09IFBJQ0ludGVyZmFjZS5QSUNfSlkxKSB7XHJcbiAgICAgICAgaW50TGV0dGVycyA9IDE7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKHN0clBpY3R1cmUuY2hhckNvZGVBdChpKSA9PT0gUElDSW50ZXJmYWNlLlBJQ19KWTIpIHtcclxuICAgICAgICAgIGludExldHRlcnMgPSAyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChzdHJQaWN0dXJlLmNoYXJDb2RlQXQoaSkgPT09IFBJQ0ludGVyZmFjZS5QSUNfSlk0KSB7XHJcbiAgICAgICAgICAgIGludExldHRlcnMgPSA0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoaW50TGV0dGVycyA+IDApIHtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGludExldHRlcnM7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgR2V0IHRoZSBzdGFydCB5ZWFyIG9mIGFuIGVyYSBpbiBwaWN0dXJlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0ckRhdGU6XCI+c3RyaW5nIG9mIGlucHV0IHN0ckRhdGVcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0clBpY3R1cmU6XCI+c3RyaW5nIG9mIHBpY3R1cmVcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IHN0YXJ0IHllYXIgb2YgdGhlIGVyYVxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgZ2V0U3RhcnRZZWFyT2ZFcmEoc3RyRGF0ZTogc3RyaW5nLCBzdHJQaWN0dXJlOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgbGV0IGVyYU5hbWVTdHJJbkRhdGU6IHN0cmluZyA9IFV0aWxEYXRlSnBuLmdldEVyYU5hbWVTdHJJbkRhdGUoc3RyRGF0ZSwgc3RyUGljdHVyZSwgMCk7XHJcbiAgICBsZXQgcmVzdWx0OiBudW1iZXI7XHJcbiAgICBpZiAoZXJhTmFtZVN0ckluRGF0ZSA9PT0gbnVsbCkge1xyXG4gICAgICByZXN1bHQgPSAwO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBlcmFOYW1lTGVuSW5QaWN0dXJlOiBudW1iZXIgPSBVdGlsRGF0ZUpwbi5nZXRFcmFOYW1lTGVuSW5QaWN0dXJlKHN0clBpY3R1cmUsIDApO1xyXG4gICAgICBpZiAoZXJhTmFtZUxlbkluUGljdHVyZSA9PT0gMCkge1xyXG4gICAgICAgIHJlc3VsdCA9IDA7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbGV0IGludFN0YXJ0WWVhck9mRXJhOiBudW1iZXIgPSB0aGlzLmRhdGVfanBuX3lyXzRfYShlcmFOYW1lU3RySW5EYXRlLCBlcmFOYW1lTGVuSW5QaWN0dXJlKTtcclxuICAgICAgICByZXN1bHQgPSBpbnRTdGFydFllYXJPZkVyYTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gQWRkIGV4dHJhIEdlbmdvIGRhdGEgaW50byB0aGUgR2VuZ28gdGFibGVzPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInN0ckV4dHJhR2VuZ286XCI+XHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPlxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgYWRkRXh0cmFHZW5nbyhzdHJFeHRyYUdlbmdvOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIC8vIGUuZy4gc3RyRXh0cmFHZW5nbyA9IFwiMjAxMi8wNC8wMSwwOTIsQWFBQkNEOzIwMTMvMDQvMDEsMDkxLFd3V1hZWjtcIlxyXG4gICAgbGV0IHN0ckdlbmdvSW5mbzogc3RyaW5nW10gPSBzdHJFeHRyYUdlbmdvLnNwbGl0KCc7Jyk7XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgc3RyR2VuZ29JbmZvLmxlbmd0aDsgaSA9IGkgKyAxKSB7XHJcbiAgICAgIGlmIChzdHJHZW5nb0luZm9baV0ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGxldCBzdHJUb2s6IHN0cmluZ1tdID0gc3RyR2VuZ29JbmZvW2ldLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgaWYgKHN0clRvay5sZW5ndGggPT09IDMgJiYgc3RyVG9rWzBdLmxlbmd0aCA+IDAgJiYgc3RyVG9rWzFdLmxlbmd0aCA+IDAgJiYgc3RyVG9rWzJdLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIGxldCBzdHJEYXRlOiBzdHJpbmdbXSA9IHN0clRva1swXS5zcGxpdCgnLycpO1xyXG4gICAgICAgICAgaWYgKHN0ckRhdGUubGVuZ3RoID09PSAzICYmIHN0ckRhdGVbMF0ubGVuZ3RoID4gMCAmJiBzdHJEYXRlWzFdLmxlbmd0aCA+IDAgJiYgc3RyRGF0ZVsyXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIFV0aWxEYXRlSnBuLkdlbmdvU3RyW01BWF9HRU5HTyArIGldWzBdID0gc3RyVG9rWzJdLnN1YnN0cigwLCAxKTsgLy8gc3ltYm9sIG5hbWUgKHVwcGVyIGNhc2UpOiBBXHJcbiAgICAgICAgICAgIFV0aWxEYXRlSnBuLkdlbmdvU3RyW01BWF9HRU5HTyArIGldWzFdID0gc3RyVG9rWzJdLnN1YnN0cigxLCAxKTsgLy8gc3ltYm9sIG5hbWUgKGxvd2VyIGNhc2UpOiBhXHJcbiAgICAgICAgICAgIFV0aWxEYXRlSnBuLkdlbmdvU3RyW01BWF9HRU5HTyArIGldWzJdID0gc3RyVG9rWzJdLnN1YnN0cigyKTsgICAgLy8gZ2VuZ28gbmFtZTogQUJDRFxyXG5cclxuICAgICAgICAgICAgVXRpbERhdGVKcG4uU3RhcnREYXlPZkdlbmdvW01BWF9HRU5HTyArIGldWzBdID0gTk51bWJlci5QYXJzZShzdHJEYXRlWzBdKTsgICAgLy8gc3RhcnQgeWVhcjogMjAxMlxyXG4gICAgICAgICAgICBVdGlsRGF0ZUpwbi5TdGFydERheU9mR2VuZ29bTUFYX0dFTkdPICsgaV1bMV0gPSBOTnVtYmVyLlBhcnNlKHN0ckRhdGVbMV0pOyAgICAvLyBzdGFydCBtb250aDogNFxyXG4gICAgICAgICAgICBVdGlsRGF0ZUpwbi5TdGFydERheU9mR2VuZ29bTUFYX0dFTkdPICsgaV1bMl0gPSBOTnVtYmVyLlBhcnNlKHN0ckRhdGVbMl0pOyAgICAvLyBzdGFydCBkYXk6IDFcclxuICAgICAgICAgICAgVXRpbERhdGVKcG4uU3RhcnREYXlPZkdlbmdvW01BWF9HRU5HTyArIGldWzNdID0gTk51bWJlci5QYXJzZShzdHJUb2tbMV0pOyAgICAgLy8gZGF5cyBzaW5jZSBKYW51YXJ5IDE6IDkyXHJcbiAgICAgICAgICAgIHRoaXMuTWF4R2VuZ28rKztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -1,67 +1,39 @@
1
- /// <summary>JPN: IME support
2
- /// Utility Class for Input Method Editor
3
- /// </summary>
4
- /// <author> Toshiro Nakayoshi (MSJ)
5
- /// </author>
6
1
  export class UtilImeJpn {
7
2
  constructor() {
8
3
  this.ImeAutoOff = false;
9
4
  this.StrImeRead = null;
10
5
  }
11
- /// <summary> check if the IME mode is within valid range
12
- /// </summary>
13
- /// <param name="imeMode">(IME mode in Magic)
14
- /// </param>
15
- /// <returns> bool
16
- /// </returns>
17
6
  isValid(imeMode) {
18
7
  return (0 <= imeMode && imeMode <= 9) || imeMode === 15 || imeMode === 10;
19
8
  }
20
- /// <summary> convert the input method editor mode
21
- /// </summary>
22
- /// <param name="imeMode">(IME mode in Magic)
23
- /// </param>
24
- /// <returns> imeConvMode (IME conversion mode in imm32.lib)
25
- /// </returns>
26
9
  static imeMode2imeConvMode(imeMode) {
27
10
  let result;
28
11
  switch (imeMode) {
29
- // IME_ZEN_HIRAGANA_ROMAN
30
12
  case 1:
31
13
  result = 25;
32
14
  break;
33
- // IME_ZEN_HIRAGANA
34
15
  case 2:
35
16
  result = 9;
36
17
  break;
37
- // IME_ZEN_KATAKANA_ROMAN
38
18
  case 3:
39
19
  result = 27;
40
20
  break;
41
- // IME_ZEN_KATAKANA
42
21
  case 4:
43
22
  result = 11;
44
23
  break;
45
- // IME_HAN_KATAKANA_ROMAN
46
24
  case 5:
47
25
  result = 19;
48
26
  break;
49
- // IME_HAN_KATAKANA
50
27
  case 6:
51
28
  result = 3;
52
29
  break;
53
- // IME_ZEN_ALPHANUMERIC
54
30
  case 7:
55
31
  result = 8;
56
32
  break;
57
- // IME_HAN_ALPHANUMERIC
58
33
  case 8:
59
34
  case 9:
60
35
  result = 0;
61
36
  break;
62
- // case 0:
63
- // case IME_DISABLE:
64
- // case IME_FORCE_OFF:
65
37
  default:
66
38
  result = 256;
67
39
  break;
@@ -77,7 +49,6 @@ UtilImeJpn.IME_CMODE_ROMAN = 16;
77
49
  UtilImeJpn.IME_CMODE_NOCONVERSION = 256;
78
50
  UtilImeJpn.IME_NOT_INITIALIZED = -1;
79
51
  UtilImeJpn.IME_ZEN_HIRAGANA_ROMAN = 1;
80
- UtilImeJpn.IME_FORCE_OFF = 15; // if (ImeMode property == 0 and (picture has K0 or PIC_S)) or
81
- // (attribute is not alpha, unicode, nor blob), set IME_FORCE_OFF.
82
- UtilImeJpn.IME_DISABLE = 10; // to completely disable IME (even not allowing to change the mode)
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbEltZUpwbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3V0aWxzL3NyYy9VdGlsSW1lSnBuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZCQUE2QjtBQUM3Qix5Q0FBeUM7QUFDekMsY0FBYztBQUNkLHFDQUFxQztBQUNyQyxhQUFhO0FBR2IsTUFBTSxPQUFPLFVBQVU7SUFxRnJCO1FBekVBLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsZUFBVSxHQUFXLElBQUksQ0FBQztJQTBFMUIsQ0FBQztJQXhFRCx5REFBeUQ7SUFDekQsY0FBYztJQUNkLDZDQUE2QztJQUM3QyxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLGNBQWM7SUFDZCxPQUFPLENBQUMsT0FBZTtRQUNyQixPQUFPLENBQUMsQ0FBQyxJQUFJLE9BQU8sSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDLElBQUksT0FBTyxLQUFLLEVBQUUsSUFBSSxPQUFPLEtBQUssRUFBRSxDQUFDO0lBQzVFLENBQUM7SUFFRCxrREFBa0Q7SUFDbEQsY0FBYztJQUNkLDZDQUE2QztJQUM3QyxZQUFZO0lBQ1osNERBQTREO0lBQzVELGNBQWM7SUFDTixNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBZTtRQUNoRCxJQUFJLE1BQWMsQ0FBQztRQUNuQixRQUFRLE9BQU8sRUFBRTtZQUNmLHlCQUF5QjtZQUN6QixLQUFLLENBQUM7Z0JBQ0osTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDWixNQUFNO1lBRVIsbUJBQW1CO1lBQ25CLEtBQUssQ0FBQztnQkFDSixNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUNYLE1BQU07WUFFUix5QkFBeUI7WUFDekIsS0FBSyxDQUFDO2dCQUNKLE1BQU0sR0FBRyxFQUFFLENBQUM7Z0JBQ1osTUFBTTtZQUVSLG1CQUFtQjtZQUNuQixLQUFLLENBQUM7Z0JBQ0osTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDWixNQUFNO1lBRVIseUJBQXlCO1lBQ3pCLEtBQUssQ0FBQztnQkFDSixNQUFNLEdBQUcsRUFBRSxDQUFDO2dCQUNaLE1BQU07WUFFUixtQkFBbUI7WUFDbkIsS0FBSyxDQUFDO2dCQUNKLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQ1gsTUFBTTtZQUVSLHVCQUF1QjtZQUN2QixLQUFLLENBQUM7Z0JBQ0osTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDWCxNQUFNO1lBRVIsdUJBQXVCO1lBQ3ZCLEtBQUssQ0FBQyxDQUFDO1lBQ1AsS0FBSyxDQUFDO2dCQUNKLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQ1gsTUFBTTtZQUVSLFVBQVU7WUFDVixvQkFBb0I7WUFDcEIsc0JBQXNCO1lBQ3RCO2dCQUNFLE1BQU0sR0FBRyxHQUFHLENBQUM7Z0JBQ2IsTUFBTTtTQUNUO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7QUFsRmMsaUNBQXNCLEdBQVcsQ0FBQyxDQUFDO0FBQ25DLDJCQUFnQixHQUFXLENBQUMsQ0FBQztBQUM3Qiw2QkFBa0IsR0FBVyxDQUFDLENBQUM7QUFDL0IsOEJBQW1CLEdBQVcsQ0FBQyxDQUFDO0FBQ2hDLDBCQUFlLEdBQVcsRUFBRSxDQUFDO0FBQzdCLGlDQUFzQixHQUFXLEdBQUcsQ0FBQztBQUNyQyw4QkFBbUIsR0FBVyxDQUFDLENBQUMsQ0FBQztBQUN6QyxpQ0FBc0IsR0FBVyxDQUFDLENBQUM7QUFDbkMsd0JBQWEsR0FBVyxFQUFFLENBQUMsQ0FBQyw4REFBOEQ7QUFDakcsa0VBQWtFO0FBQzNELHNCQUFXLEdBQVcsRUFBRSxDQUFDLENBQUcsbUVBQW1FIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxzdW1tYXJ5PkpQTjogSU1FIHN1cHBvcnRcclxuLy8vIFV0aWxpdHkgQ2xhc3MgZm9yIElucHV0IE1ldGhvZCBFZGl0b3JcclxuLy8vIDwvc3VtbWFyeT5cclxuLy8vIDxhdXRob3I+ICBUb3NoaXJvIE5ha2F5b3NoaSAoTVNKKVxyXG4vLy8gPC9hdXRob3I+XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFV0aWxJbWVKcG4ge1xyXG4gIHByaXZhdGUgc3RhdGljIElNRV9DTU9ERV9BTFBIQU5VTUVSSUM6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgSU1FX0NNT0RFX05BVElWRTogbnVtYmVyID0gMTtcclxuICBwcml2YXRlIHN0YXRpYyBJTUVfQ01PREVfS0FUQUtBTkE6IG51bWJlciA9IDI7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgSU1FX0NNT0RFX0ZVTExTSEFQRTogbnVtYmVyID0gODtcclxuICBwcml2YXRlIHN0YXRpYyBJTUVfQ01PREVfUk9NQU46IG51bWJlciA9IDE2O1xyXG4gIHByaXZhdGUgc3RhdGljIElNRV9DTU9ERV9OT0NPTlZFUlNJT046IG51bWJlciA9IDI1NjtcclxuICBwcml2YXRlIHN0YXRpYyBJTUVfTk9UX0lOSVRJQUxJWkVEOiBudW1iZXIgPSAtMTtcclxuICBzdGF0aWMgSU1FX1pFTl9ISVJBR0FOQV9ST01BTjogbnVtYmVyID0gMTtcclxuICBzdGF0aWMgSU1FX0ZPUkNFX09GRjogbnVtYmVyID0gMTU7IC8vIGlmIChJbWVNb2RlIHByb3BlcnR5ID09IDAgYW5kIChwaWN0dXJlIGhhcyBLMCBvciBQSUNfUykpIG9yXHJcbiAgLy8gKGF0dHJpYnV0ZSBpcyBub3QgYWxwaGEsIHVuaWNvZGUsIG5vciBibG9iKSwgc2V0IElNRV9GT1JDRV9PRkYuXHJcbiAgc3RhdGljIElNRV9ESVNBQkxFOiBudW1iZXIgPSAxMDsgICAvLyB0byBjb21wbGV0ZWx5IGRpc2FibGUgSU1FIChldmVuIG5vdCBhbGxvd2luZyB0byBjaGFuZ2UgdGhlIG1vZGUpXHJcbiAgSW1lQXV0b09mZjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFN0ckltZVJlYWQ6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gY2hlY2sgaWYgdGhlIElNRSBtb2RlIGlzIHdpdGhpbiB2YWxpZCByYW5nZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiaW1lTW9kZVwiPihJTUUgbW9kZSBpbiBNYWdpYylcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IGJvb2xcclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIGlzVmFsaWQoaW1lTW9kZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKDAgPD0gaW1lTW9kZSAmJiBpbWVNb2RlIDw9IDkpIHx8IGltZU1vZGUgPT09IDE1IHx8IGltZU1vZGUgPT09IDEwO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBjb252ZXJ0IHRoZSBpbnB1dCBtZXRob2QgZWRpdG9yIG1vZGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImltZU1vZGVcIj4oSU1FIG1vZGUgaW4gTWFnaWMpXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiBpbWVDb252TW9kZSAoSU1FIGNvbnZlcnNpb24gbW9kZSBpbiBpbW0zMi5saWIpXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBwcml2YXRlIHN0YXRpYyBpbWVNb2RlMmltZUNvbnZNb2RlKGltZU1vZGU6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBsZXQgcmVzdWx0OiBudW1iZXI7XHJcbiAgICBzd2l0Y2ggKGltZU1vZGUpIHtcclxuICAgICAgLy8gSU1FX1pFTl9ISVJBR0FOQV9ST01BTlxyXG4gICAgICBjYXNlIDE6XHJcbiAgICAgICAgcmVzdWx0ID0gMjU7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAvLyBJTUVfWkVOX0hJUkFHQU5BXHJcbiAgICAgIGNhc2UgMjpcclxuICAgICAgICByZXN1bHQgPSA5O1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgLy8gSU1FX1pFTl9LQVRBS0FOQV9ST01BTlxyXG4gICAgICBjYXNlIDM6XHJcbiAgICAgICAgcmVzdWx0ID0gMjc7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAvLyBJTUVfWkVOX0tBVEFLQU5BXHJcbiAgICAgIGNhc2UgNDpcclxuICAgICAgICByZXN1bHQgPSAxMTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIC8vIElNRV9IQU5fS0FUQUtBTkFfUk9NQU5cclxuICAgICAgY2FzZSA1OlxyXG4gICAgICAgIHJlc3VsdCA9IDE5O1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgLy8gSU1FX0hBTl9LQVRBS0FOQVxyXG4gICAgICBjYXNlIDY6XHJcbiAgICAgICAgcmVzdWx0ID0gMztcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIC8vIElNRV9aRU5fQUxQSEFOVU1FUklDXHJcbiAgICAgIGNhc2UgNzpcclxuICAgICAgICByZXN1bHQgPSA4O1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgLy8gSU1FX0hBTl9BTFBIQU5VTUVSSUNcclxuICAgICAgY2FzZSA4OlxyXG4gICAgICBjYXNlIDk6XHJcbiAgICAgICAgcmVzdWx0ID0gMDtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIC8vIGNhc2UgMDpcclxuICAgICAgLy8gY2FzZSBJTUVfRElTQUJMRTpcclxuICAgICAgLy8gY2FzZSBJTUVfRk9SQ0VfT0ZGOlxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJlc3VsdCA9IDI1NjtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuXHJcbiAgfVxyXG59XHJcbiJdfQ==
52
+ UtilImeJpn.IME_FORCE_OFF = 15;
53
+ UtilImeJpn.IME_DISABLE = 10;
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbEltZUpwbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3V0aWxzL3NyYy9VdGlsSW1lSnBuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sT0FBTyxVQUFVO0lBcUZyQjtRQXpFQSxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGVBQVUsR0FBVyxJQUFJLENBQUM7SUEwRTFCLENBQUM7SUFsRUQsT0FBTyxDQUFDLE9BQWU7UUFDckIsT0FBTyxDQUFDLENBQUMsSUFBSSxPQUFPLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLE9BQU8sS0FBSyxFQUFFLElBQUksT0FBTyxLQUFLLEVBQUUsQ0FBQztJQUM1RSxDQUFDO0lBUU8sTUFBTSxDQUFDLG1CQUFtQixDQUFDLE9BQWU7UUFDaEQsSUFBSSxNQUFjLENBQUM7UUFDbkIsUUFBUSxPQUFPLEVBQUU7WUFFZixLQUFLLENBQUM7Z0JBQ0osTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDWixNQUFNO1lBR1IsS0FBSyxDQUFDO2dCQUNKLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQ1gsTUFBTTtZQUdSLEtBQUssQ0FBQztnQkFDSixNQUFNLEdBQUcsRUFBRSxDQUFDO2dCQUNaLE1BQU07WUFHUixLQUFLLENBQUM7Z0JBQ0osTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDWixNQUFNO1lBR1IsS0FBSyxDQUFDO2dCQUNKLE1BQU0sR0FBRyxFQUFFLENBQUM7Z0JBQ1osTUFBTTtZQUdSLEtBQUssQ0FBQztnQkFDSixNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUNYLE1BQU07WUFHUixLQUFLLENBQUM7Z0JBQ0osTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDWCxNQUFNO1lBR1IsS0FBSyxDQUFDLENBQUM7WUFDUCxLQUFLLENBQUM7Z0JBQ0osTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDWCxNQUFNO1lBS1I7Z0JBQ0UsTUFBTSxHQUFHLEdBQUcsQ0FBQztnQkFDYixNQUFNO1NBQ1Q7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOztBQWxGYyxpQ0FBc0IsR0FBVyxDQUFDLENBQUM7QUFDbkMsMkJBQWdCLEdBQVcsQ0FBQyxDQUFDO0FBQzdCLDZCQUFrQixHQUFXLENBQUMsQ0FBQztBQUMvQiw4QkFBbUIsR0FBVyxDQUFDLENBQUM7QUFDaEMsMEJBQWUsR0FBVyxFQUFFLENBQUM7QUFDN0IsaUNBQXNCLEdBQVcsR0FBRyxDQUFDO0FBQ3JDLDhCQUFtQixHQUFXLENBQUMsQ0FBQyxDQUFDO0FBQ3pDLGlDQUFzQixHQUFXLENBQUMsQ0FBQztBQUNuQyx3QkFBYSxHQUFXLEVBQUUsQ0FBQztBQUUzQixzQkFBVyxHQUFXLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8c3VtbWFyeT5KUE46IElNRSBzdXBwb3J0XHJcbi8vLyBVdGlsaXR5IENsYXNzIGZvciBJbnB1dCBNZXRob2QgRWRpdG9yXHJcbi8vLyA8L3N1bW1hcnk+XHJcbi8vLyA8YXV0aG9yPiAgVG9zaGlybyBOYWtheW9zaGkgKE1TSilcclxuLy8vIDwvYXV0aG9yPlxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBVdGlsSW1lSnBuIHtcclxuICBwcml2YXRlIHN0YXRpYyBJTUVfQ01PREVfQUxQSEFOVU1FUklDOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgc3RhdGljIElNRV9DTU9ERV9OQVRJVkU6IG51bWJlciA9IDE7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgSU1FX0NNT0RFX0tBVEFLQU5BOiBudW1iZXIgPSAyO1xyXG4gIHByaXZhdGUgc3RhdGljIElNRV9DTU9ERV9GVUxMU0hBUEU6IG51bWJlciA9IDg7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgSU1FX0NNT0RFX1JPTUFOOiBudW1iZXIgPSAxNjtcclxuICBwcml2YXRlIHN0YXRpYyBJTUVfQ01PREVfTk9DT05WRVJTSU9OOiBudW1iZXIgPSAyNTY7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgSU1FX05PVF9JTklUSUFMSVpFRDogbnVtYmVyID0gLTE7XHJcbiAgc3RhdGljIElNRV9aRU5fSElSQUdBTkFfUk9NQU46IG51bWJlciA9IDE7XHJcbiAgc3RhdGljIElNRV9GT1JDRV9PRkY6IG51bWJlciA9IDE1OyAvLyBpZiAoSW1lTW9kZSBwcm9wZXJ0eSA9PSAwIGFuZCAocGljdHVyZSBoYXMgSzAgb3IgUElDX1MpKSBvclxyXG4gIC8vIChhdHRyaWJ1dGUgaXMgbm90IGFscGhhLCB1bmljb2RlLCBub3IgYmxvYiksIHNldCBJTUVfRk9SQ0VfT0ZGLlxyXG4gIHN0YXRpYyBJTUVfRElTQUJMRTogbnVtYmVyID0gMTA7ICAgLy8gdG8gY29tcGxldGVseSBkaXNhYmxlIElNRSAoZXZlbiBub3QgYWxsb3dpbmcgdG8gY2hhbmdlIHRoZSBtb2RlKVxyXG4gIEltZUF1dG9PZmY6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBTdHJJbWVSZWFkOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+IGNoZWNrIGlmIHRoZSBJTUUgbW9kZSBpcyB3aXRoaW4gdmFsaWQgcmFuZ2VcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImltZU1vZGVcIj4oSU1FIG1vZGUgaW4gTWFnaWMpXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiBib29sXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBpc1ZhbGlkKGltZU1vZGU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICgwIDw9IGltZU1vZGUgJiYgaW1lTW9kZSA8PSA5KSB8fCBpbWVNb2RlID09PSAxNSB8fCBpbWVNb2RlID09PSAxMDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gY29udmVydCB0aGUgaW5wdXQgbWV0aG9kIGVkaXRvciBtb2RlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJpbWVNb2RlXCI+KElNRSBtb2RlIGluIE1hZ2ljKVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gaW1lQ29udk1vZGUgKElNRSBjb252ZXJzaW9uIG1vZGUgaW4gaW1tMzIubGliKVxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBzdGF0aWMgaW1lTW9kZTJpbWVDb252TW9kZShpbWVNb2RlOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgbGV0IHJlc3VsdDogbnVtYmVyO1xyXG4gICAgc3dpdGNoIChpbWVNb2RlKSB7XHJcbiAgICAgIC8vIElNRV9aRU5fSElSQUdBTkFfUk9NQU5cclxuICAgICAgY2FzZSAxOlxyXG4gICAgICAgIHJlc3VsdCA9IDI1O1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgLy8gSU1FX1pFTl9ISVJBR0FOQVxyXG4gICAgICBjYXNlIDI6XHJcbiAgICAgICAgcmVzdWx0ID0gOTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIC8vIElNRV9aRU5fS0FUQUtBTkFfUk9NQU5cclxuICAgICAgY2FzZSAzOlxyXG4gICAgICAgIHJlc3VsdCA9IDI3O1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgLy8gSU1FX1pFTl9LQVRBS0FOQVxyXG4gICAgICBjYXNlIDQ6XHJcbiAgICAgICAgcmVzdWx0ID0gMTE7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAvLyBJTUVfSEFOX0tBVEFLQU5BX1JPTUFOXHJcbiAgICAgIGNhc2UgNTpcclxuICAgICAgICByZXN1bHQgPSAxOTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIC8vIElNRV9IQU5fS0FUQUtBTkFcclxuICAgICAgY2FzZSA2OlxyXG4gICAgICAgIHJlc3VsdCA9IDM7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAvLyBJTUVfWkVOX0FMUEhBTlVNRVJJQ1xyXG4gICAgICBjYXNlIDc6XHJcbiAgICAgICAgcmVzdWx0ID0gODtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIC8vIElNRV9IQU5fQUxQSEFOVU1FUklDXHJcbiAgICAgIGNhc2UgODpcclxuICAgICAgY2FzZSA5OlxyXG4gICAgICAgIHJlc3VsdCA9IDA7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAvLyBjYXNlIDA6XHJcbiAgICAgIC8vIGNhc2UgSU1FX0RJU0FCTEU6XHJcbiAgICAgIC8vIGNhc2UgSU1FX0ZPUkNFX09GRjpcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXN1bHQgPSAyNTY7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcblxyXG4gIH1cclxufVxyXG4iXX0=