limitng 0.13.7 → 0.13.11

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 (36) hide show
  1. package/api/globalFunctions.d.ts +1 -0
  2. package/api/globalFunctions.d.ts.map +1 -1
  3. package/api/models/fourDConstants.d.ts +71 -69
  4. package/api/models/fourDConstants.d.ts.map +1 -1
  5. package/api/models/xlConfig.d.ts +8 -3
  6. package/api/models/xlConfig.d.ts.map +1 -1
  7. package/esm2020/api/globalFunctions.mjs +5 -1
  8. package/esm2020/api/models/fourDConstants.mjs +74 -72
  9. package/esm2020/api/models/xlConfig.mjs +40 -16
  10. package/fesm2015/limitng-api-models.mjs +112 -86
  11. package/fesm2015/limitng-api-models.mjs.map +1 -1
  12. package/fesm2015/limitng-api.mjs +4 -0
  13. package/fesm2015/limitng-api.mjs.map +1 -1
  14. package/fesm2020/limitng-api-models.mjs +112 -86
  15. package/fesm2020/limitng-api-models.mjs.map +1 -1
  16. package/fesm2020/limitng-api.mjs +4 -0
  17. package/fesm2020/limitng-api.mjs.map +1 -1
  18. package/package.json +1 -1
  19. package/assets/images/Download_Hover.svg +0 -71
  20. package/assets/images/Download_Normal.svg +0 -71
  21. package/assets/images/Download_Pressed.svg +0 -130
  22. package/assets/images/Excel_Hover.svg +0 -68
  23. package/assets/images/Excel_Normal.svg +0 -57
  24. package/assets/images/Excel_Pressed.svg +0 -86
  25. package/assets/images/Info_Hover.svg +0 -139
  26. package/assets/images/Info_Normal.svg +0 -101
  27. package/assets/images/Info_Pressed.svg +0 -98
  28. package/assets/images/Outlook_Hover.svg +0 -102
  29. package/assets/images/Outlook_Normal.svg +0 -56
  30. package/assets/images/Outlook_Pressed.svg +0 -102
  31. package/assets/images/PDF_Hover.svg +0 -78
  32. package/assets/images/PDF_Normal.svg +0 -64
  33. package/assets/images/PDF_Pressed.svg +0 -90
  34. package/assets/images/ePosta_Hover.svg +0 -1
  35. package/assets/images/ePosta_Normal.svg +0 -1
  36. package/assets/images/ePosta_Pressed.svg +0 -1
@@ -7,79 +7,81 @@ export var FontStyle;
7
7
  })(FontStyle || (FontStyle = {}));
8
8
  export var XLRenk;
9
9
  (function (XLRenk) {
10
- XLRenk["clBlack"] = "0";
11
- XLRenk["clWhite"] = "16777215";
12
- XLRenk["clMaroon"] = "128";
13
- XLRenk["clGreen"] = "32768";
14
- XLRenk["clOlive"] = "32896";
15
- XLRenk["clNavy"] = "8388608";
16
- XLRenk["clPurple"] = "8388736";
17
- XLRenk["clTeal"] = "8421376";
18
- XLRenk["clGray"] = "8421504";
19
- XLRenk["clSilver"] = "12632256";
20
- XLRenk["clRed"] = "255";
21
- XLRenk["clLime"] = "65280";
22
- XLRenk["clYellow"] = "65535";
23
- XLRenk["clBlue"] = "16711680";
24
- XLRenk["clFuchsia"] = "16711935";
25
- XLRenk["clAqua"] = "16776960";
26
- XLRenk["clLtGray"] = "12632256";
27
- XLRenk["clDkGray"] = "8421504";
10
+ XLRenk["Black"] = "0";
11
+ XLRenk["White"] = "16777215";
12
+ XLRenk["Maroon"] = "128";
13
+ XLRenk["Green"] = "32768";
14
+ XLRenk["Olive"] = "32896";
15
+ XLRenk["Navy"] = "8388608";
16
+ XLRenk["Purple"] = "8388736";
17
+ XLRenk["Teal"] = "8421376";
18
+ XLRenk["Gray"] = "8421504";
19
+ XLRenk["Silver"] = "12632256";
20
+ XLRenk["Red"] = "255";
21
+ XLRenk["Lime"] = "65280";
22
+ XLRenk["Yellow"] = "65535";
23
+ XLRenk["Blue"] = "16711680";
24
+ XLRenk["Fuchsia"] = "16711935";
25
+ XLRenk["Aqua"] = "16776960";
26
+ XLRenk["LtGray"] = "12632256";
27
+ XLRenk["DkGray"] = "8421504";
28
28
  })(XLRenk || (XLRenk = {}));
29
29
  export var VariableType;
30
30
  (function (VariableType) {
31
- VariableType[VariableType["IsBLOB"] = 30] = "IsBLOB";
32
- VariableType[VariableType["IsBoolean"] = 6] = "IsBoolean";
33
- VariableType[VariableType["Isdate"] = 4] = "Isdate";
34
- VariableType[VariableType["Isinteger"] = 8] = "Isinteger";
35
- VariableType[VariableType["Islongint"] = 9] = "Islongint";
36
- VariableType[VariableType["Isobject"] = 38] = "Isobject";
37
- VariableType[VariableType["Ispicture"] = 3] = "Ispicture";
38
- VariableType[VariableType["Ispointer"] = 23] = "Ispointer";
39
- VariableType[VariableType["Isreal"] = 1] = "Isreal";
40
- VariableType[VariableType["Istext"] = 2] = "Istext";
41
- VariableType[VariableType["Istime"] = 11] = "Istime";
31
+ VariableType[VariableType["Blob"] = 30] = "Blob";
32
+ VariableType[VariableType["Boolean"] = 6] = "Boolean";
33
+ VariableType[VariableType["Date"] = 4] = "Date";
34
+ VariableType[VariableType["Integer"] = 8] = "Integer";
35
+ VariableType[VariableType["LongInt"] = 9] = "LongInt";
36
+ VariableType[VariableType["Object"] = 38] = "Object";
37
+ VariableType[VariableType["Picture"] = 3] = "Picture";
38
+ VariableType[VariableType["Pointer"] = 23] = "Pointer";
39
+ VariableType[VariableType["Real"] = 1] = "Real";
40
+ VariableType[VariableType["Text"] = 2] = "Text";
41
+ VariableType[VariableType["Time"] = 11] = "Time";
42
42
  })(VariableType || (VariableType = {}));
43
- export var Formatlar;
44
- (function (Formatlar) {
45
- Formatlar[Formatlar["Format_Genel"] = -1000] = "Format_Genel";
46
- Formatlar[Formatlar["Format_Metin"] = -1001] = "Format_Metin";
47
- Formatlar[Formatlar["Format_Tarih"] = 101] = "Format_Tarih";
48
- Formatlar[Formatlar["Format_Yuzde_BirHane"] = 102] = "Format_Yuzde_BirHane";
49
- Formatlar[Formatlar["Format_Dolar_Kurussuz"] = 23] = "Format_Dolar_Kurussuz";
50
- Formatlar[Formatlar["Format_Saat_Saniyesiz"] = 9] = "Format_Saat_Saniyesiz";
51
- Formatlar[Formatlar["Format_Kur"] = 15] = "Format_Kur";
52
- Formatlar[Formatlar["Format_Saat_Saniyeli"] = 16] = "Format_Saat_Saniyeli";
53
- Formatlar[Formatlar["Format_TL_Kuruslu"] = 17] = "Format_TL_Kuruslu";
54
- Formatlar[Formatlar["Format_Dolar_Kuruslu"] = 18] = "Format_Dolar_Kuruslu";
55
- Formatlar[Formatlar["Format_Yuzde_SifirHane"] = 19] = "Format_Yuzde_SifirHane";
56
- Formatlar[Formatlar["Format_Yuzde_IkiHane"] = 20] = "Format_Yuzde_IkiHane";
57
- Formatlar[Formatlar["Format_Yuzde_BesHane"] = 21] = "Format_Yuzde_BesHane";
58
- Formatlar[Formatlar["Format_TL_Kurussuz"] = 22] = "Format_TL_Kurussuz";
59
- Formatlar[Formatlar["Format_Tarih_YYYYMMDD"] = 103] = "Format_Tarih_YYYYMMDD";
60
- Formatlar[Formatlar["Format_Tarih_GGAAAAYYYY"] = 104] = "Format_Tarih_GGAAAAYYYY";
61
- Formatlar[Formatlar["Format_Tarih_LongDate"] = 105] = "Format_Tarih_LongDate";
62
- Formatlar[Formatlar["Format_imp"] = 106] = "Format_imp";
63
- Formatlar[Formatlar["Format_Clicks"] = 107] = "Format_Clicks";
64
- Formatlar[Formatlar["Format_Gun"] = 108] = "Format_Gun";
65
- Formatlar[Formatlar["Format_Tarih_ga"] = 109] = "Format_Tarih_ga";
66
- Formatlar[Formatlar["Format_Tarih_ggaa"] = 110] = "Format_Tarih_ggaa";
67
- Formatlar[Formatlar["Format_Tarih_ggaaa"] = 111] = "Format_Tarih_ggaaa";
68
- Formatlar[Formatlar["Format_Tarih_ggaaaa"] = 112] = "Format_Tarih_ggaaaa";
69
- Formatlar[Formatlar["Format_Tarih_gaaaa"] = 113] = "Format_Tarih_gaaaa";
70
- Formatlar[Formatlar["Format_View"] = 114] = "Format_View";
71
- Formatlar[Formatlar["Format_Session"] = 115] = "Format_Session";
72
- Formatlar[Formatlar["Format_Kisi"] = 116] = "Format_Kisi";
73
- Formatlar[Formatlar["Format_Okunma"] = 117] = "Format_Okunma";
74
- Formatlar[Formatlar["Format_Dinlenme"] = 118] = "Format_Dinlenme";
75
- Formatlar[Formatlar["Format_Euro_Kuruslu"] = 24] = "Format_Euro_Kuruslu";
76
- Formatlar[Formatlar["Format_Euro_Kurussuz"] = 25] = "Format_Euro_Kurussuz";
77
- Formatlar[Formatlar["Format_Sterlin_Kuruslu"] = 26] = "Format_Sterlin_Kuruslu";
78
- Formatlar[Formatlar["Format_Sterlin_Kurussuz"] = 27] = "Format_Sterlin_Kurussuz";
79
- Formatlar[Formatlar["Format_Tarih_yyyymmdd_tireli"] = 120] = "Format_Tarih_yyyymmdd_tireli";
80
- Formatlar[Formatlar["Format_TLSembol_Kuruslu"] = 28] = "Format_TLSembol_Kuruslu";
81
- Formatlar[Formatlar["Format_TLSembol_Kurussuz"] = 29] = "Format_TLSembol_Kurussuz";
82
- Formatlar[Formatlar["Format_Lead"] = 47] = "Format_Lead";
83
- Formatlar[Formatlar["Format_Tarih_AAAAYYYY"] = 121] = "Format_Tarih_AAAAYYYY";
84
- })(Formatlar || (Formatlar = {}));
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm91ckRDb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYXBpL21vZGVscy9mb3VyRENvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25CLDJDQUFTLENBQUE7SUFDVCx5Q0FBUSxDQUFBO0lBQ1IsNkNBQVUsQ0FBQTtJQUNWLG1EQUFhLENBQUE7QUFDZixDQUFDLEVBTFcsU0FBUyxLQUFULFNBQVMsUUFLcEI7QUFFRCxNQUFNLENBQU4sSUFBWSxNQW1CWDtBQW5CRCxXQUFZLE1BQU07SUFDaEIsdUJBQWEsQ0FBQTtJQUNiLDhCQUFvQixDQUFBO0lBQ3BCLDBCQUFnQixDQUFBO0lBQ2hCLDJCQUFpQixDQUFBO0lBQ2pCLDJCQUFpQixDQUFBO0lBQ2pCLDRCQUFrQixDQUFBO0lBQ2xCLDhCQUFvQixDQUFBO0lBQ3BCLDRCQUFrQixDQUFBO0lBQ2xCLDRCQUFrQixDQUFBO0lBQ2xCLCtCQUFxQixDQUFBO0lBQ3JCLHVCQUFhLENBQUE7SUFDYiwwQkFBZ0IsQ0FBQTtJQUNoQiw0QkFBa0IsQ0FBQTtJQUNsQiw2QkFBbUIsQ0FBQTtJQUNuQixnQ0FBc0IsQ0FBQTtJQUN0Qiw2QkFBbUIsQ0FBQTtJQUNuQiwrQkFBcUIsQ0FBQTtJQUNyQiw4QkFBb0IsQ0FBQTtBQUN0QixDQUFDLEVBbkJXLE1BQU0sS0FBTixNQUFNLFFBbUJqQjtBQUdELE1BQU0sQ0FBTixJQUFZLFlBWVg7QUFaRCxXQUFZLFlBQVk7SUFDdEIsb0RBQVcsQ0FBQTtJQUNYLHlEQUFhLENBQUE7SUFDYixtREFBVSxDQUFBO0lBQ1YseURBQWEsQ0FBQTtJQUNiLHlEQUFhLENBQUE7SUFDYix3REFBYSxDQUFBO0lBQ2IseURBQWEsQ0FBQTtJQUNiLDBEQUFjLENBQUE7SUFDZCxtREFBVSxDQUFBO0lBQ1YsbURBQVUsQ0FBQTtJQUNWLG9EQUFXLENBQUE7QUFDYixDQUFDLEVBWlcsWUFBWSxLQUFaLFlBQVksUUFZdkI7QUFHRCxNQUFNLENBQU4sSUFBWSxTQXdDWDtBQXhDRCxXQUFZLFNBQVM7SUFDbkIsNkRBQW9CLENBQUE7SUFDcEIsNkRBQW9CLENBQUE7SUFDcEIsMkRBQWtCLENBQUE7SUFDbEIsMkVBQTBCLENBQUE7SUFDMUIsNEVBQTBCLENBQUE7SUFDMUIsMkVBQXlCLENBQUE7SUFDekIsc0RBQWUsQ0FBQTtJQUNmLDBFQUF5QixDQUFBO0lBQ3pCLG9FQUFzQixDQUFBO0lBQ3RCLDBFQUF5QixDQUFBO0lBQ3pCLDhFQUEyQixDQUFBO0lBQzNCLDBFQUF5QixDQUFBO0lBQ3pCLDBFQUF5QixDQUFBO0lBQ3pCLHNFQUF1QixDQUFBO0lBQ3ZCLDZFQUEyQixDQUFBO0lBQzNCLGlGQUE2QixDQUFBO0lBQzdCLDZFQUEyQixDQUFBO0lBQzNCLHVEQUFnQixDQUFBO0lBQ2hCLDZEQUFtQixDQUFBO0lBQ25CLHVEQUFnQixDQUFBO0lBQ2hCLGlFQUFxQixDQUFBO0lBQ3JCLHFFQUF1QixDQUFBO0lBQ3ZCLHVFQUF3QixDQUFBO0lBQ3hCLHlFQUF5QixDQUFBO0lBQ3pCLHVFQUF3QixDQUFBO0lBQ3hCLHlEQUFpQixDQUFBO0lBQ2pCLCtEQUFvQixDQUFBO0lBQ3BCLHlEQUFpQixDQUFBO0lBQ2pCLDZEQUFtQixDQUFBO0lBQ25CLGlFQUFxQixDQUFBO0lBQ3JCLHdFQUF3QixDQUFBO0lBQ3hCLDBFQUF5QixDQUFBO0lBQ3pCLDhFQUEyQixDQUFBO0lBQzNCLGdGQUE0QixDQUFBO0lBQzVCLDJGQUFrQyxDQUFBO0lBQ2xDLGdGQUE0QixDQUFBO0lBQzVCLGtGQUE2QixDQUFBO0lBQzdCLHdEQUFnQixDQUFBO0lBQ2hCLDZFQUEyQixDQUFBO0FBQzdCLENBQUMsRUF4Q1csU0FBUyxLQUFULFNBQVMsUUF3Q3BCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRm9udFN0eWxlIHtcclxuICBQbGFpbiA9IDAsXHJcbiAgQm9sZCA9IDEsXHJcbiAgSXRhbGljID0gMixcclxuICBVbmRlcmxpbmUgPSA0XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFhMUmVuayB7XHJcbiAgY2xCbGFjayA9ICcwJyxcclxuICBjbFdoaXRlID0gJzE2Nzc3MjE1JyxcclxuICBjbE1hcm9vbiA9ICcxMjgnLFxyXG4gIGNsR3JlZW4gPSAnMzI3NjgnLFxyXG4gIGNsT2xpdmUgPSAnMzI4OTYnLFxyXG4gIGNsTmF2eSA9ICc4Mzg4NjA4JyxcclxuICBjbFB1cnBsZSA9ICc4Mzg4NzM2JyxcclxuICBjbFRlYWwgPSAnODQyMTM3NicsXHJcbiAgY2xHcmF5ID0gJzg0MjE1MDQnLFxyXG4gIGNsU2lsdmVyID0gJzEyNjMyMjU2JyxcclxuICBjbFJlZCA9ICcyNTUnLFxyXG4gIGNsTGltZSA9ICc2NTI4MCcsXHJcbiAgY2xZZWxsb3cgPSAnNjU1MzUnLFxyXG4gIGNsQmx1ZSA9ICcxNjcxMTY4MCcsXHJcbiAgY2xGdWNoc2lhID0gJzE2NzExOTM1JyxcclxuICBjbEFxdWEgPSAnMTY3NzY5NjAnLFxyXG4gIGNsTHRHcmF5ID0gJzEyNjMyMjU2JyxcclxuICBjbERrR3JheSA9ICc4NDIxNTA0J1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGVudW0gVmFyaWFibGVUeXBlIHtcclxuICBJc0JMT0IgPSAzMCxcclxuICBJc0Jvb2xlYW4gPSA2LFxyXG4gIElzZGF0ZSA9IDQsXHJcbiAgSXNpbnRlZ2VyID0gOCxcclxuICBJc2xvbmdpbnQgPSA5LFxyXG4gIElzb2JqZWN0ID0gMzgsXHJcbiAgSXNwaWN0dXJlID0gMyxcclxuICBJc3BvaW50ZXIgPSAyMyxcclxuICBJc3JlYWwgPSAxLFxyXG4gIElzdGV4dCA9IDIsXHJcbiAgSXN0aW1lID0gMTFcclxufVxyXG5cclxuXHJcbmV4cG9ydCBlbnVtIEZvcm1hdGxhciB7XHJcbiAgRm9ybWF0X0dlbmVsID0gLTEwMDAsXHJcbiAgRm9ybWF0X01ldGluID0gLTEwMDEsXHJcbiAgRm9ybWF0X1RhcmloID0gMTAxLFxyXG4gIEZvcm1hdF9ZdXpkZV9CaXJIYW5lID0gMTAyLFxyXG4gIEZvcm1hdF9Eb2xhcl9LdXJ1c3N1eiA9IDIzLFxyXG4gIEZvcm1hdF9TYWF0X1Nhbml5ZXNpeiA9IDksXHJcbiAgRm9ybWF0X0t1ciA9IDE1LFxyXG4gIEZvcm1hdF9TYWF0X1Nhbml5ZWxpID0gMTYsXHJcbiAgRm9ybWF0X1RMX0t1cnVzbHUgPSAxNyxcclxuICBGb3JtYXRfRG9sYXJfS3VydXNsdSA9IDE4LFxyXG4gIEZvcm1hdF9ZdXpkZV9TaWZpckhhbmUgPSAxOSxcclxuICBGb3JtYXRfWXV6ZGVfSWtpSGFuZSA9IDIwLFxyXG4gIEZvcm1hdF9ZdXpkZV9CZXNIYW5lID0gMjEsXHJcbiAgRm9ybWF0X1RMX0t1cnVzc3V6ID0gMjIsXHJcbiAgRm9ybWF0X1RhcmloX1lZWVlNTUREID0gMTAzLFxyXG4gIEZvcm1hdF9UYXJpaF9HR0FBQUFZWVlZID0gMTA0LFxyXG4gIEZvcm1hdF9UYXJpaF9Mb25nRGF0ZSA9IDEwNSxcclxuICBGb3JtYXRfaW1wID0gMTA2LFxyXG4gIEZvcm1hdF9DbGlja3MgPSAxMDcsXHJcbiAgRm9ybWF0X0d1biA9IDEwOCxcclxuICBGb3JtYXRfVGFyaWhfZ2EgPSAxMDksXHJcbiAgRm9ybWF0X1RhcmloX2dnYWEgPSAxMTAsXHJcbiAgRm9ybWF0X1RhcmloX2dnYWFhID0gMTExLFxyXG4gIEZvcm1hdF9UYXJpaF9nZ2FhYWEgPSAxMTIsXHJcbiAgRm9ybWF0X1RhcmloX2dhYWFhID0gMTEzLFxyXG4gIEZvcm1hdF9WaWV3ID0gMTE0LFxyXG4gIEZvcm1hdF9TZXNzaW9uID0gMTE1LFxyXG4gIEZvcm1hdF9LaXNpID0gMTE2LFxyXG4gIEZvcm1hdF9Pa3VubWEgPSAxMTcsXHJcbiAgRm9ybWF0X0Rpbmxlbm1lID0gMTE4LFxyXG4gIEZvcm1hdF9FdXJvX0t1cnVzbHUgPSAyNCxcclxuICBGb3JtYXRfRXVyb19LdXJ1c3N1eiA9IDI1LFxyXG4gIEZvcm1hdF9TdGVybGluX0t1cnVzbHUgPSAyNixcclxuICBGb3JtYXRfU3Rlcmxpbl9LdXJ1c3N1eiA9IDI3LFxyXG4gIEZvcm1hdF9UYXJpaF95eXl5bW1kZF90aXJlbGkgPSAxMjAsXHJcbiAgRm9ybWF0X1RMU2VtYm9sX0t1cnVzbHUgPSAyOCxcclxuICBGb3JtYXRfVExTZW1ib2xfS3VydXNzdXogPSAyOSxcclxuICBGb3JtYXRfTGVhZCA9IDQ3LFxyXG4gIEZvcm1hdF9UYXJpaF9BQUFBWVlZWSA9IDEyMVxyXG59XHJcbiJdfQ==
43
+ export var NumberFormatlar;
44
+ (function (NumberFormatlar) {
45
+ NumberFormatlar[NumberFormatlar["Genel"] = -1000] = "Genel";
46
+ NumberFormatlar[NumberFormatlar["Metin"] = -1001] = "Metin";
47
+ NumberFormatlar[NumberFormatlar["Tarih"] = 101] = "Tarih";
48
+ NumberFormatlar[NumberFormatlar["Long"] = 1] = "Long";
49
+ NumberFormatlar[NumberFormatlar["Real"] = 3] = "Real";
50
+ NumberFormatlar[NumberFormatlar["Yuzde_BirHane"] = 102] = "Yuzde_BirHane";
51
+ NumberFormatlar[NumberFormatlar["Dolar_Kurussuz"] = 23] = "Dolar_Kurussuz";
52
+ NumberFormatlar[NumberFormatlar["Saat_Saniyesiz"] = 9] = "Saat_Saniyesiz";
53
+ NumberFormatlar[NumberFormatlar["Kur"] = 15] = "Kur";
54
+ NumberFormatlar[NumberFormatlar["Saat_Saniyeli"] = 16] = "Saat_Saniyeli";
55
+ NumberFormatlar[NumberFormatlar["TL_Kuruslu"] = 17] = "TL_Kuruslu";
56
+ NumberFormatlar[NumberFormatlar["Dolar_Kuruslu"] = 18] = "Dolar_Kuruslu";
57
+ NumberFormatlar[NumberFormatlar["Yuzde_SifirHane"] = 19] = "Yuzde_SifirHane";
58
+ NumberFormatlar[NumberFormatlar["Yuzde_IkiHane"] = 20] = "Yuzde_IkiHane";
59
+ NumberFormatlar[NumberFormatlar["Yuzde_BesHane"] = 21] = "Yuzde_BesHane";
60
+ NumberFormatlar[NumberFormatlar["TL_Kurussuz"] = 22] = "TL_Kurussuz";
61
+ NumberFormatlar[NumberFormatlar["Tarih_YYYYMMDD"] = 103] = "Tarih_YYYYMMDD";
62
+ NumberFormatlar[NumberFormatlar["Tarih_GGAAAAYYYY"] = 104] = "Tarih_GGAAAAYYYY";
63
+ NumberFormatlar[NumberFormatlar["Tarih_LongDate"] = 105] = "Tarih_LongDate";
64
+ NumberFormatlar[NumberFormatlar["imp"] = 106] = "imp";
65
+ NumberFormatlar[NumberFormatlar["Clicks"] = 107] = "Clicks";
66
+ NumberFormatlar[NumberFormatlar["Gun"] = 108] = "Gun";
67
+ NumberFormatlar[NumberFormatlar["Tarih_ga"] = 109] = "Tarih_ga";
68
+ NumberFormatlar[NumberFormatlar["Tarih_ggaa"] = 110] = "Tarih_ggaa";
69
+ NumberFormatlar[NumberFormatlar["Tarih_ggaaa"] = 111] = "Tarih_ggaaa";
70
+ NumberFormatlar[NumberFormatlar["Tarih_ggaaaa"] = 112] = "Tarih_ggaaaa";
71
+ NumberFormatlar[NumberFormatlar["Tarih_gaaaa"] = 113] = "Tarih_gaaaa";
72
+ NumberFormatlar[NumberFormatlar["View"] = 114] = "View";
73
+ NumberFormatlar[NumberFormatlar["Session"] = 115] = "Session";
74
+ NumberFormatlar[NumberFormatlar["Kisi"] = 116] = "Kisi";
75
+ NumberFormatlar[NumberFormatlar["Okunma"] = 117] = "Okunma";
76
+ NumberFormatlar[NumberFormatlar["Dinlenme"] = 118] = "Dinlenme";
77
+ NumberFormatlar[NumberFormatlar["Euro_Kuruslu"] = 24] = "Euro_Kuruslu";
78
+ NumberFormatlar[NumberFormatlar["Euro_Kurussuz"] = 25] = "Euro_Kurussuz";
79
+ NumberFormatlar[NumberFormatlar["Sterlin_Kuruslu"] = 26] = "Sterlin_Kuruslu";
80
+ NumberFormatlar[NumberFormatlar["Sterlin_Kurussuz"] = 27] = "Sterlin_Kurussuz";
81
+ NumberFormatlar[NumberFormatlar["Tarih_yyyymmdd_tireli"] = 120] = "Tarih_yyyymmdd_tireli";
82
+ NumberFormatlar[NumberFormatlar["TLSembol_Kuruslu"] = 28] = "TLSembol_Kuruslu";
83
+ NumberFormatlar[NumberFormatlar["TLSembol_Kurussuz"] = 29] = "TLSembol_Kurussuz";
84
+ NumberFormatlar[NumberFormatlar["Lead"] = 47] = "Lead";
85
+ NumberFormatlar[NumberFormatlar["Tarih_AAAAYYYY"] = 121] = "Tarih_AAAAYYYY";
86
+ })(NumberFormatlar || (NumberFormatlar = {}));
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm91ckRDb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYXBpL21vZGVscy9mb3VyRENvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25CLDJDQUFTLENBQUE7SUFDVCx5Q0FBUSxDQUFBO0lBQ1IsNkNBQVUsQ0FBQTtJQUNWLG1EQUFhLENBQUE7QUFDZixDQUFDLEVBTFcsU0FBUyxLQUFULFNBQVMsUUFLcEI7QUFFRCxNQUFNLENBQU4sSUFBWSxNQW1CWDtBQW5CRCxXQUFZLE1BQU07SUFDaEIscUJBQVcsQ0FBQTtJQUNYLDRCQUFrQixDQUFBO0lBQ2xCLHdCQUFjLENBQUE7SUFDZCx5QkFBZSxDQUFBO0lBQ2YseUJBQWUsQ0FBQTtJQUNmLDBCQUFnQixDQUFBO0lBQ2hCLDRCQUFrQixDQUFBO0lBQ2xCLDBCQUFnQixDQUFBO0lBQ2hCLDBCQUFnQixDQUFBO0lBQ2hCLDZCQUFtQixDQUFBO0lBQ25CLHFCQUFXLENBQUE7SUFDWCx3QkFBYyxDQUFBO0lBQ2QsMEJBQWdCLENBQUE7SUFDaEIsMkJBQWlCLENBQUE7SUFDakIsOEJBQW9CLENBQUE7SUFDcEIsMkJBQWlCLENBQUE7SUFDakIsNkJBQW1CLENBQUE7SUFDbkIsNEJBQWtCLENBQUE7QUFDcEIsQ0FBQyxFQW5CVyxNQUFNLEtBQU4sTUFBTSxRQW1CakI7QUFHRCxNQUFNLENBQU4sSUFBWSxZQVlYO0FBWkQsV0FBWSxZQUFZO0lBQ3RCLGdEQUFTLENBQUE7SUFDVCxxREFBVyxDQUFBO0lBQ1gsK0NBQVEsQ0FBQTtJQUNSLHFEQUFXLENBQUE7SUFDWCxxREFBVyxDQUFBO0lBQ1gsb0RBQVcsQ0FBQTtJQUNYLHFEQUFXLENBQUE7SUFDWCxzREFBWSxDQUFBO0lBQ1osK0NBQVEsQ0FBQTtJQUNSLCtDQUFRLENBQUE7SUFDUixnREFBUyxDQUFBO0FBQ1gsQ0FBQyxFQVpXLFlBQVksS0FBWixZQUFZLFFBWXZCO0FBR0QsTUFBTSxDQUFOLElBQVksZUEwQ1g7QUExQ0QsV0FBWSxlQUFlO0lBQ3pCLDJEQUFhLENBQUE7SUFDYiwyREFBYSxDQUFBO0lBQ2IseURBQVcsQ0FBQTtJQUNYLHFEQUFRLENBQUE7SUFDUixxREFBUSxDQUFBO0lBQ1IseUVBQW1CLENBQUE7SUFDbkIsMEVBQW1CLENBQUE7SUFDbkIseUVBQWtCLENBQUE7SUFDbEIsb0RBQVEsQ0FBQTtJQUNSLHdFQUFrQixDQUFBO0lBQ2xCLGtFQUFlLENBQUE7SUFDZix3RUFBa0IsQ0FBQTtJQUNsQiw0RUFBb0IsQ0FBQTtJQUNwQix3RUFBa0IsQ0FBQTtJQUNsQix3RUFBa0IsQ0FBQTtJQUNsQixvRUFBZ0IsQ0FBQTtJQUNoQiwyRUFBb0IsQ0FBQTtJQUNwQiwrRUFBc0IsQ0FBQTtJQUN0QiwyRUFBb0IsQ0FBQTtJQUNwQixxREFBUyxDQUFBO0lBQ1QsMkRBQVksQ0FBQTtJQUNaLHFEQUFTLENBQUE7SUFDVCwrREFBYyxDQUFBO0lBQ2QsbUVBQWdCLENBQUE7SUFDaEIscUVBQWlCLENBQUE7SUFDakIsdUVBQWtCLENBQUE7SUFDbEIscUVBQWlCLENBQUE7SUFDakIsdURBQVUsQ0FBQTtJQUNWLDZEQUFhLENBQUE7SUFDYix1REFBVSxDQUFBO0lBQ1YsMkRBQVksQ0FBQTtJQUNaLCtEQUFjLENBQUE7SUFDZCxzRUFBaUIsQ0FBQTtJQUNqQix3RUFBa0IsQ0FBQTtJQUNsQiw0RUFBb0IsQ0FBQTtJQUNwQiw4RUFBcUIsQ0FBQTtJQUNyQix5RkFBMkIsQ0FBQTtJQUMzQiw4RUFBcUIsQ0FBQTtJQUNyQixnRkFBc0IsQ0FBQTtJQUN0QixzREFBUyxDQUFBO0lBQ1QsMkVBQW9CLENBQUE7QUFDdEIsQ0FBQyxFQTFDVyxlQUFlLEtBQWYsZUFBZSxRQTBDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBGb250U3R5bGUge1xyXG4gIFBsYWluID0gMCxcclxuICBCb2xkID0gMSxcclxuICBJdGFsaWMgPSAyLFxyXG4gIFVuZGVybGluZSA9IDRcclxufVxyXG5cclxuZXhwb3J0IGVudW0gWExSZW5rIHtcclxuICBCbGFjayA9ICcwJyxcclxuICBXaGl0ZSA9ICcxNjc3NzIxNScsXHJcbiAgTWFyb29uID0gJzEyOCcsXHJcbiAgR3JlZW4gPSAnMzI3NjgnLFxyXG4gIE9saXZlID0gJzMyODk2JyxcclxuICBOYXZ5ID0gJzgzODg2MDgnLFxyXG4gIFB1cnBsZSA9ICc4Mzg4NzM2JyxcclxuICBUZWFsID0gJzg0MjEzNzYnLFxyXG4gIEdyYXkgPSAnODQyMTUwNCcsXHJcbiAgU2lsdmVyID0gJzEyNjMyMjU2JyxcclxuICBSZWQgPSAnMjU1JyxcclxuICBMaW1lID0gJzY1MjgwJyxcclxuICBZZWxsb3cgPSAnNjU1MzUnLFxyXG4gIEJsdWUgPSAnMTY3MTE2ODAnLFxyXG4gIEZ1Y2hzaWEgPSAnMTY3MTE5MzUnLFxyXG4gIEFxdWEgPSAnMTY3NzY5NjAnLFxyXG4gIEx0R3JheSA9ICcxMjYzMjI1NicsXHJcbiAgRGtHcmF5ID0gJzg0MjE1MDQnXHJcbn1cclxuXHJcblxyXG5leHBvcnQgZW51bSBWYXJpYWJsZVR5cGUge1xyXG4gIEJsb2IgPSAzMCxcclxuICBCb29sZWFuID0gNixcclxuICBEYXRlID0gNCxcclxuICBJbnRlZ2VyID0gOCxcclxuICBMb25nSW50ID0gOSxcclxuICBPYmplY3QgPSAzOCxcclxuICBQaWN0dXJlID0gMyxcclxuICBQb2ludGVyID0gMjMsXHJcbiAgUmVhbCA9IDEsXHJcbiAgVGV4dCA9IDIsXHJcbiAgVGltZSA9IDExXHJcbn1cclxuXHJcblxyXG5leHBvcnQgZW51bSBOdW1iZXJGb3JtYXRsYXIge1xyXG4gIEdlbmVsID0gLTEwMDAsXHJcbiAgTWV0aW4gPSAtMTAwMSxcclxuICBUYXJpaCA9IDEwMSxcclxuICBMb25nID0gMSxcclxuICBSZWFsID0gMyxcclxuICBZdXpkZV9CaXJIYW5lID0gMTAyLFxyXG4gIERvbGFyX0t1cnVzc3V6ID0gMjMsXHJcbiAgU2FhdF9TYW5peWVzaXogPSA5LFxyXG4gIEt1ciA9IDE1LFxyXG4gIFNhYXRfU2FuaXllbGkgPSAxNixcclxuICBUTF9LdXJ1c2x1ID0gMTcsXHJcbiAgRG9sYXJfS3VydXNsdSA9IDE4LFxyXG4gIFl1emRlX1NpZmlySGFuZSA9IDE5LFxyXG4gIFl1emRlX0lraUhhbmUgPSAyMCxcclxuICBZdXpkZV9CZXNIYW5lID0gMjEsXHJcbiAgVExfS3VydXNzdXogPSAyMixcclxuICBUYXJpaF9ZWVlZTU1ERCA9IDEwMyxcclxuICBUYXJpaF9HR0FBQUFZWVlZID0gMTA0LFxyXG4gIFRhcmloX0xvbmdEYXRlID0gMTA1LFxyXG4gIGltcCA9IDEwNixcclxuICBDbGlja3MgPSAxMDcsXHJcbiAgR3VuID0gMTA4LFxyXG4gIFRhcmloX2dhID0gMTA5LFxyXG4gIFRhcmloX2dnYWEgPSAxMTAsXHJcbiAgVGFyaWhfZ2dhYWEgPSAxMTEsXHJcbiAgVGFyaWhfZ2dhYWFhID0gMTEyLFxyXG4gIFRhcmloX2dhYWFhID0gMTEzLFxyXG4gIFZpZXcgPSAxMTQsXHJcbiAgU2Vzc2lvbiA9IDExNSxcclxuICBLaXNpID0gMTE2LFxyXG4gIE9rdW5tYSA9IDExNyxcclxuICBEaW5sZW5tZSA9IDExOCxcclxuICBFdXJvX0t1cnVzbHUgPSAyNCxcclxuICBFdXJvX0t1cnVzc3V6ID0gMjUsXHJcbiAgU3Rlcmxpbl9LdXJ1c2x1ID0gMjYsXHJcbiAgU3Rlcmxpbl9LdXJ1c3N1eiA9IDI3LFxyXG4gIFRhcmloX3l5eXltbWRkX3RpcmVsaSA9IDEyMCxcclxuICBUTFNlbWJvbF9LdXJ1c2x1ID0gMjgsXHJcbiAgVExTZW1ib2xfS3VydXNzdXogPSAyOSxcclxuICBMZWFkID0gNDcsXHJcbiAgVGFyaWhfQUFBQVlZWVkgPSAxMjFcclxufVxyXG4iXX0=
@@ -1,4 +1,4 @@
1
- import { FontStyle, Formatlar, VariableType, XLRenk } from './fourDConstants';
1
+ import { FontStyle, NumberFormatlar, VariableType, XLRenk } from './fourDConstants';
2
2
  import { XlBorderWeigh, XLFuncs, XLHAlign, XLLineStyle, XlVAlign } from './xlConstants';
3
3
  export class XLConfig {
4
4
  constructor(fontName, fontSize) {
@@ -15,6 +15,7 @@ export class XLConfig {
15
15
  this.ustBilgiler = [];
16
16
  this.ustBilgi = new XLUstBilgi();
17
17
  this.notlar = [];
18
+ this.scripts = [];
18
19
  this.not = new XLNot();
19
20
  this.tables = [];
20
21
  this.sheets = [new XLSheet(1)];
@@ -38,11 +39,11 @@ export class XLConfig {
38
39
  table.header.basilacak = true;
39
40
  table.footer.basilacak = false;
40
41
  table.header = new XLTableColumnHeader();
41
- table.header.interior.color = XLRenk.clWhite;
42
+ table.header.interior.color = XLRenk.White;
42
43
  table.data = new XLTableColumnData();
43
- table.data.interior.color = XLRenk.clWhite;
44
+ table.data.interior.color = XLRenk.White;
44
45
  table.footer = new XLTableColumnFooter();
45
- table.footer.interior.color = XLRenk.clWhite;
46
+ table.footer.interior.color = XLRenk.White;
46
47
  table.hiddenRowsInit();
47
48
  table.sortInit();
48
49
  table.rowsInit();
@@ -61,6 +62,28 @@ export class XLConfig {
61
62
  */
62
63
  return table;
63
64
  }
65
+ sheetRowsRowHeightScript(rowHeight, baslangicSatiri, bitisSatiri, sheetName) {
66
+ let _sheetName = this.currentSheetObject;
67
+ let _bitisSatiri = baslangicSatiri;
68
+ if ((sheetName !== undefined) && (sheetName !== null)) {
69
+ _sheetName = sheetName;
70
+ }
71
+ if ((bitisSatiri !== undefined) && (bitisSatiri !== null)) {
72
+ _bitisSatiri = bitisSatiri;
73
+ }
74
+ if (baslangicSatiri === _bitisSatiri) {
75
+ this.scripts.push(_sheetName + '.Rows("' + baslangicSatiri.toString() + '").RowHeight = ' + this.VBSRealToText(rowHeight));
76
+ }
77
+ else {
78
+ this.scripts.push(_sheetName + '.Rows("' + baslangicSatiri.toString() + ':' + _bitisSatiri.toString() + '").RowHeight = ' + this.VBSRealToText(rowHeight));
79
+ }
80
+ }
81
+ addScript(script) {
82
+ this.scripts.push(script);
83
+ }
84
+ VBSRealToText(sayi) {
85
+ return sayi.toString().replace(/[,]/g, '.');
86
+ }
64
87
  }
65
88
  export class XLUstBilgiSatir {
66
89
  constructor() {
@@ -84,7 +107,7 @@ export class XLFont {
84
107
  constructor(fontName, fontSize) {
85
108
  this.name = 'Segoe UI';
86
109
  this.size = 11;
87
- this.color = XLRenk.clBlack;
110
+ this.color = XLRenk.Black;
88
111
  this.style = FontStyle.Plain;
89
112
  if (typeof fontName !== 'undefined') {
90
113
  this.name = fontName;
@@ -117,6 +140,7 @@ export class XLNot {
117
140
  export class XLSheet {
118
141
  constructor(sheetNo) {
119
142
  this.sheetNo = 0;
143
+ this.sheetName = 0;
120
144
  if (typeof sheetNo !== 'undefined') {
121
145
  this.sheetNo = sheetNo;
122
146
  }
@@ -124,7 +148,7 @@ export class XLSheet {
124
148
  }
125
149
  export class XLInterior {
126
150
  constructor() {
127
- this.color = XLRenk.clWhite;
151
+ this.color = XLRenk.White;
128
152
  }
129
153
  }
130
154
  export class XLBorder {
@@ -132,7 +156,7 @@ export class XLBorder {
132
156
  this.type = 'Tümü';
133
157
  this.lineStyle = XLLineStyle.xlContinuous;
134
158
  this.weight = XlBorderWeigh.xlThin;
135
- this.color = XLRenk.clBlack;
159
+ this.color = XLRenk.Black;
136
160
  }
137
161
  }
138
162
  export class XLTableColumnHeader {
@@ -224,17 +248,17 @@ export class XLTable {
224
248
  column.format = 0;
225
249
  column.width = genislik;
226
250
  switch (type) {
227
- case VariableType.Isinteger:
228
- column.format = 1;
251
+ case VariableType.Integer:
252
+ column.format = NumberFormatlar.Long;
229
253
  break;
230
- case VariableType.Islongint:
231
- column.format = 1;
254
+ case VariableType.LongInt:
255
+ column.format = NumberFormatlar.Long;
232
256
  break;
233
- case VariableType.Isreal:
234
- column.format = 3;
257
+ case VariableType.Real:
258
+ column.format = NumberFormatlar.Real;
235
259
  break;
236
- case VariableType.Isdate:
237
- column.format = Formatlar.Format_Tarih;
260
+ case VariableType.Date:
261
+ column.format = NumberFormatlar.Tarih;
238
262
  break;
239
263
  default:
240
264
  break;
@@ -408,4 +432,4 @@ export class RowInteriorColor {
408
432
  this.rowNo = rowNo;
409
433
  }
410
434
  }
411
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGxDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYXBpL21vZGVscy94bENvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEYsTUFBTSxPQUFPLFFBQVE7SUF1Qm5CLFlBQVksUUFBaUIsRUFBRSxRQUFpQjtRQXRCaEQsU0FBSSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7UUFDcEIsZ0JBQVcsR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBRTNCLHNCQUFpQixHQUFHLG1CQUFtQixDQUFDO1FBQ3hDLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLDZCQUF3QixHQUFHLE9BQU8sQ0FBQztRQUNuQyxzQkFBaUIsR0FBRyxRQUFRLENBQUM7UUFDN0IsdUJBQWtCLEdBQUcsU0FBUyxDQUFDO1FBQy9CLFdBQU0sR0FBRyxTQUFTLENBQUM7UUFDbkIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUVmLGdCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUNwQyxhQUFRLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUU1QixXQUFNLEdBQWEsRUFBRSxDQUFDO1FBQ3RCLFFBQUcsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBRWxCLFdBQU0sR0FBYyxFQUFFLENBQUM7UUFFdkIsV0FBTSxHQUFjLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUduQyxJQUFJLENBQUMsT0FBTyxRQUFRLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFP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LHdCQUFtQixHQUFhLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDdEQsc0JBQWlCLEdBQWEsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUNwRCxXQUFNLEdBQWMsQ0FBQyxDQUFDO1FBQ3RCLFVBQUssR0FBRyxDQUFDLENBQUM7SUFhWixDQUFDO0lBWEMsaUJBQWlCLENBQUMsY0FBdUI7UUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxZQUFZO0lBR3ZCLFlBQVksS0FBYSxFQUFFLEtBQWE7UUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdCQUFnQjtJQUczQixZQUFZLEtBQWEsRUFBRSxLQUFhO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvbnRTdHlsZSwgRm9ybWF0bGFyLCBWYXJpYWJsZVR5cGUsIFhMUmVuayB9IGZyb20gJy4vZm91ckRDb25zdGFudHMnO1xyXG5pbXBvcnQgeyBYbEJvcmRlcldlaWdoLCBYTEZ1bmNzLCBYTEhBbGlnbiwgWExMaW5lU3R5bGUsIFhsVkFsaWduIH0gZnJvbSAnLi94bENvbnN0YW50cyc7XHJcblxyXG5leHBvcnQgY2xhc3MgWExDb25maWcge1xyXG4gIGxvZ28gPSBuZXcgWExMb2dvKCk7XHJcbiAgZGVmYXVsdEZvbnQgPSBuZXcgWExGb250KCk7XHJcblxyXG4gIGN1cnJlbnRUYWJsZVN0eWxlID0gJ1RhYmxlU3R5bGVMaWdodDEwJztcclxuICBjdXJyZW50VGFibGUgPSAxO1xyXG4gIGN1cnJlbnRBcHBsaWNhdGlvbk9iamVjdCA9ICd4bEFwcCc7XHJcbiAgY3VycmVudEJvb2tPYmplY3QgPSAneGxCb29rJztcclxuICBjdXJyZW50U2hlZXRPYmplY3QgPSAneGxTaGVldCc7XHJcbiAgYXV0aG9yID0gJ01lZFBsYW4nO1xyXG4gIHNpZmlybGFyaUJhc21hID0gZmFsc2U7XHJcbiAgc2hlZXROYW1lID0gJyc7XHJcblxyXG4gIHVzdEJpbGdpbGVyOiBYTFVzdEJpbGdpU2F0aXJbXSA9IFtdO1xyXG4gIHVzdEJpbGdpID0gbmV3IFhMVXN0QmlsZ2koKTtcclxuXHJcbiAgbm90bGFyOiBzdHJpbmdbXSA9IFtdO1xyXG4gIG5vdCA9IG5ldyBYTE5vdCgpO1xyXG5cclxuICB0YWJsZXM6IFhMVGFibGVbXSA9IFtdO1xyXG5cclxuICBzaGVldHM6IFhMU2hlZXRbXSA9IFtuZXcgWExTaGVldCgxKV07XHJcblxyXG4gIGNvbnN0cnVjdG9yKGZvbnROYW1lPzogc3RyaW5nLCBmb250U2l6ZT86IG51bWJlcikge1xyXG4gICAgaWYgKCh0eXBlb2YgZm9udE5hbWUgIT09ICd1bmRlZmluZWQnKSB8fCAodHlwZW9mIGZvbnRTaXplICE9PSAndW5kZWZpbmVkJykpIHtcclxuICAgICAgdGhpcy5kZWZhdWx0Rm9udCA9IG5ldyBYTEZvbnQoZm9udE5hbWUsIGZvbnRTaXplKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHRhYmxlID0gdGhpcy5hZGRUYWJsZSgpO1xyXG4gICAgdGFibGUudGFibGVObyA9IHRoaXMudGFibGVzLmxlbmd0aCArIDE7XHJcblxyXG4gICAgdGhpcy50YWJsZXMucHVzaCh0YWJsZSk7XHJcblxyXG4gIH1cclxuXHJcbiAgdXN0QmlsZ2lTYXRpckVrbGUoc2F0aXI6IHN0cmluZykge1xyXG4gICAgY29uc3QgdXN0QmlsZ2kgPSBuZXcgWExVc3RCaWxnaVNhdGlyKCk7XHJcbiAgICB1c3RCaWxnaS5yb3dObyA9IHRoaXMudXN0QmlsZ2lsZXIubGVuZ3RoICsgMTtcclxuICAgIHVzdEJpbGdpLnVzdEJpbGdpID0gc2F0aXI7XHJcblxyXG4gICAgdGhpcy51c3RCaWxnaWxlci5wdXNoKHVzdEJpbGdpKTtcclxuICB9XHJcblxyXG4gIGFkZFRhYmxlKCk6IFhMVGFibGUge1xyXG4gICAgY29uc3QgdGFibGUgPSBuZXcgWExUYWJsZSgpO1xyXG4gICAgdGFibGUuc29sID0gMTtcclxuICAgIHRhYmxlLnVzdCA9IDE7XHJcbiAgICB0YWJsZS5oZWFkZXIuYmFzaWxhY2FrID0gdHJ1ZTtcclxuICAgIHRhYmxlLmZvb3Rlci5iYXNpbGFjYWsgPSBmYWxzZTtcclxuICAgIHRhYmxlLmhlYWRlciA9IG5ldyBYTFRhYmxlQ29sdW1uSGVhZGVyKCk7XHJcbiAgICB0YWJsZS5oZWFkZXIuaW50ZXJpb3IuY29sb3IgPSBYTFJlbmsuY2xXaGl0ZTtcclxuICAgIHRhYmxlLmRhdGEgPSBuZXcgWExUYWJsZUNvbHVtbkRhdGEoKTtcclxuICAgIHRhYmxlLmRhdGEuaW50ZXJpb3IuY29sb3IgPSBYTFJlbmsuY2xXaGl0ZTtcclxuICAgIHRhYmxlLmZvb3RlciA9IG5ldyBYTFRhYmxlQ29sdW1uRm9vdGVyKCk7XHJcbiAgICB0YWJsZS5mb290ZXIuaW50ZXJpb3IuY29sb3IgPSBYTFJlbmsuY2xXaGl0ZTtcclxuXHJcbiAgICB0YWJsZS5oaWRkZW5Sb3dzSW5pdCgpO1xyXG4gICAgdGFibGUuc29ydEluaXQoKTtcclxuICAgIHRhYmxlLnJvd3NJbml0KCk7XHJcbiAgICB0YWJsZS5jb2x1bW5Gb3JtYXRzSW5pdCgpO1xyXG5cclxuICAgIHRhYmxlLnJvd0Zvcm1hdHNJbml0KCk7XHJcbiAgICB0YWJsZS5jZWxsRm9ybWF0c0luaXQoKTtcclxuICAgIHRhYmxlLnJhbmdlRm9ybWF0c0luaXQoKTtcclxuXHJcbiAgICAvKlxyXG4gICAgICAgIFhMX1RfSGVhZGVyQm9yZGVyQWxsU2V0KFV0aWxzQm9yZGVyVHVtdTsgeGxDb250aW51b3VzOyB4bFRoaW47IGNsQmxhY2spXHJcbiAgICAgICAgWExfVF9EYXRhQm9yZGVyQWxsU2V0KFV0aWxzQm9yZGVyVHVtdTsgeGxDb250aW51b3VzOyB4bFRoaW47IGNsQmxhY2spXHJcbiAgICAgICAgWExfVF9Gb290ZXJCb3JkZXJBbGxTZXQoVXRpbHNCb3JkZXJUdW11OyB4bENvbnRpbnVvdXM7IHhsVGhpbjsgY2xCbGFjaylcclxuICAgICAgICBYTF9UX0hlYWRlckZvbnRBbGxTZXQoWExfRGVmYXVsdEZvbnROYW1lIDsgWExfRGVmYXVsdEZvbnRTaXplOyBQbGFpbjsgY2xCbGFjaylcclxuICAgICAgICBYTF9UX0RhdGFGb250QWxsU2V0KFhMX0RlZmF1bHRGb250TmFtZSA7IFhMX0RlZmF1bHRGb250U2l6ZTsgUGxhaW47IGNsQmxhY2spXHJcbiAgICAgICAgWExfVF9Gb290ZXJGb250QWxsU2V0KFhMX0RlZmF1bHRGb250TmFtZSA7IFhMX0RlZmF1bHRGb250U2l6ZTsgUGxhaW47IGNsQmxhY2spXHJcbiAgICAgICAgWExfVF9TaGVldE5hbWVTZXQoWExfU19DdXJyZW50KVxyXG4qL1xyXG5cclxuICAgIHJldHVybiB0YWJsZTtcclxuICB9XHJcblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgWExVc3RCaWxnaVNhdGlyIHtcclxuICByb3dObyA9IDA7XHJcbiAgZm9udCA9IG5ldyBYTEZvbnQoJycsIDApO1xyXG4gIHVzdEJpbGdpID0gJyc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBYTExvZ28ge1xyXG4gIGdlbmlzbGlrID0gMDtcclxuICB5dWtzZWtsaWsgPSAwO1xyXG4gIHVzdE1hcmppbiA9IDA7XHJcbiAgc29sTWFyamluID0gMDtcclxuICBlYmF0UGl4ZWxtaSA9IGZhbHNlO1xyXG4gIGViYXQgPSAnJztcclxuICBrb251bSA9ICcnO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgWExGb250IHtcclxuICBuYW1lID0gJ1NlZ29lIFVJJztcclxuICBzaXplID0gMTE7XHJcbiAgY29sb3IgPSBYTFJlbmsuY2xCbGFjaztcclxuICBzdHlsZSA9IEZvbnRTdHlsZS5QbGFpbjtcclxuXHJcbiAgY29uc3RydWN0b3IoZm9udE5hbWU/OiBzdHJpbmcsIGZvbnRTaXplPzogbnVtYmVyKSB7XHJcbiAgICBpZiAodHlwZW9mIGZvbnROYW1lICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICB0aGlzLm5hbWUgPSBmb250TmFtZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIGZvbnRTaXplICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICB0aGlzLnNpemUgPSBmb250U2l6ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBYTFVzdEJpbGdpIHtcclxuICBmb250ID0gbmV3IFhMRm9udCgpO1xyXG4gIGNvbHVtbkZvbnRDb2xvcnM6IHN0cmluZ1tdID0gW107XHJcbiAgY29sdW1uRm9udFN0eWxlczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoZm9udE5hbWU/OiBzdHJpbmcsIGZvbnRTaXplPzogbnVtYmVyKSB7XHJcbiAgICBpZiAodHlwZW9mIGZvbnROYW1lICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICB0aGlzLmZvbnQubmFtZSA9IGZvbnROYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2YgZm9udFNpemUgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHRoaXMuZm9udC5zaXplID0gZm9udFNpemU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFhMTm90IHtcclxuICBmb250ID0gbmV3IFhMRm9udCgpO1xyXG4gIGNvbHVtbkZvbnRDb2xvcnM6IHN0cmluZ1tdID0gW107XHJcbiAgY29sdW1uRm9udFN0eWxlczogc3RyaW5nW10gPSBbXTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFhMU2hlZXQge1xyXG4gIHNoZWV0Tm8gPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihzaGVldE5vOiBudW1iZXIpIHtcclxuICAgIGlmICh0eXBlb2Ygc2hlZXRObyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgdGhpcy5zaGVldE5vID0gc2hlZXRObztcclxuICAgIH1cclxuXHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgWExJbnRlcmlvciB7XHJcbiAgY29sb3I6IFhMUmVuayA9IFhMUmVuay5jbFdoaXRlO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgWExCb3JkZXIge1xyXG4gIHR5cGUgPSAnVMO8bcO8JztcclxuICBsaW5lU3R5bGUgPSBYTExpbmVTdHlsZS54bENvbnRpbnVvdXM7XHJcbiAgd2VpZ2h0ID0gWGxCb3JkZXJXZWlnaC54bFRoaW47XHJcbiAgY29sb3IgPSBYTFJlbmsuY2xCbGFjaztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFhMVGFibGVDb2x1bW5IZWFkZXIge1xyXG4gIHRpdGxlID0gJyc7XHJcbiAgaG9yaXpvbnRhbEFsaWdubWVudDogWExIQWxpZ24gPSBYTEhBbGlnbi54bEhBbGlnbk5vbmU7XHJcbiAgdmVydGljYWxBbGlnbm1lbnQ6IFhsVkFsaWduID0gWGxWQWxpZ24ueGxWQWxpZ25Ob25lO1xyXG4gIGZvbnQgPSBuZXcgWExGb250KCk7XHJcbiAgaW50ZXJpb3IgPSBuZXcgWExJbnRlcmlvcigpO1xyXG4gIGJvcmRlciA9IG5ldyBYTEJvcmRlcigpO1xyXG4gIGJhc2lsYWNhayA9IHRydWU7XHJcbiAgc2F0aXJTYXlpc2kgPSAxO1xyXG4gIGlzTXVsdGlMaW5lID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IoaGVhZGVyID0gJycpIHtcclxuICAgIHRoaXMudGl0bGUgPSBoZWFkZXI7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgWExUYWJsZUNvbHVtbkRhdGEge1xyXG4gIGZvbnQgPSBuZXcgWExGb250KCk7XHJcbiAgaW50ZXJpb3IgPSBuZXcgWExJbnRlcmlvcigpO1xyXG4gIGJvcmRlciA9IG5ldyBYTEJvcmRlcigpO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgWExUYWJsZSB7XHJcbiAgY29sdW1uczogWExUYWJsZUNvbHVtbltdID0gW107XHJcbiAgaGVhZGVyID0gbmV3IFhMVGFibGVDb2x1bW5IZWFkZXIoKTtcclxuICBkYXRhID0gbmV3IFhMVGFibGVDb2x1bW5EYXRhKCk7XHJcbiAgZm9vdGVyID0gbmV3IFhMVGFibGVDb2x1bW5Gb290ZXIoKTtcclxuICB0YWJsZU5vID0gMTtcclxuICBjb2xsZWN0aW9uOiBzdHJpbmdbXTtcclxuICBzb2wgPSAxO1xyXG4gIHVzdCA9IDE7XHJcbiAgdmVyaUtheW5hZ2kgPSAnQ29sbGVjdGlvbic7XHJcbiAgc2hlZXROYW1lID0gJ3hsU2hlZXQnO1xyXG4gIGhpZGRlblJvd3M6IG51bWJlcltdID0gW107XHJcbiAgc29ydDogbnVtYmVyW10gPSBbXTtcclxuICByb3dzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGNvbHVtbkZvbnROYW1lczogc3RyaW5nW10gPSBbXTtcclxuICBjb2x1bW5Gb250U2l6ZXM6IG51bWJlcltdID0gW107XHJcbiAgY29sdW1uRm9udENvbG9yczogc3RyaW5nW10gPSBbXTtcclxuICBjb2x1bW5Gb250U3R5bGVzOiBGb250U3R5bGVbXSA9IFtdO1xyXG4gIGNvbHVtbkludGVyaW9yQ29sb3JzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGNvbHVtbkhlYWRlckZvbnROYW1lczogc3RyaW5nW10gPSBbXTtcclxuICBjb2x1bW5IZWFkZXJGb250U2l6ZXM6IG51bWJlcltdID0gW107XHJcbiAgY29sdW1uSGVhZGVyRm9udENvbG9yczogc3RyaW5nW10gPSBbXTtcclxuICBjb2x1bW5IZWFkZXJGb250U3R5bGVzOiBGb250U3R5bGVbXSA9IFtdO1xyXG4gIGNvbHVtbkhlYWRlckludGVyaW9yQ29sb3JzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGNvbHVtbkZvb3RlckZvbnROYW1lczogc3RyaW5nW10gPSBbXTtcclxuICBjb2x1bW5Gb290ZXJGb250U2l6ZXM6IG51bWJlcltdID0gW107XHJcbiAgY29sdW1uRm9vdGVyRm9udENvbG9yczogc3RyaW5nW10gPSBbXTtcclxuICBjb2x1bW5Gb290ZXJGb250U3R5bGVzOiBGb250U3R5bGVbXSA9IFtdO1xyXG4gIGNvbHVtbkZvb3RlckludGVyaW9yQ29sb3JzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHJvd0ZvbnROYW1lczogc3RyaW5nW10gPSBbXTtcclxuICByb3dGb250U2l6ZXM6IG51bWJlcltdID0gW107XHJcbiAgcm93Rm9udENvbG9yczogUm93Rm9udENvbG9yW10gPSBbXTtcclxuICByb3dGb250U3R5bGVzOiBGb250U3R5bGVbXSA9IFtdO1xyXG4gIHJvd0ludGVyaW9yQ29sb3JzOiBSb3dJbnRlcmlvckNvbG9yW10gPSBbXTtcclxuICByb3dGb3JtYXRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHJvd0hvcml6b250YWxBbGlnbm1lbnRzOiBYTEhBbGlnbltdID0gW107XHJcbiAgcm93VmVydGljYWxBbGlnbm1lbnRzOiBYbFZBbGlnbltdID0gW107XHJcbiAgY2VsbEZvbnROYW1lczogc3RyaW5nW10gPSBbXTtcclxuICBjZWxsRm9udFNpemVzOiBudW1iZXJbXSA9IFtdO1xyXG4gIGNlbGxGb250Q29sb3JzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGNlbGxGb250U3R5bGVzOiBGb250U3R5bGVbXSA9IFtdO1xyXG4gIGNlbGxJbnRlcmlvckNvbG9yczogc3RyaW5nW10gPSBbXTtcclxuICBjZWxsRm9ybWF0czogc3RyaW5nW10gPSBbXTtcclxuICBjZWxsSG9yaXpvbnRhbEFsaWdubWVudHM6IFhMSEFsaWduW10gPSBbXTtcclxuICBjZWxsVmVydGljYWxBbGlnbm1lbnRzOiBYbFZBbGlnbltdID0gW107XHJcbiAgcmFuZ2VGb250TmFtZXM6IHN0cmluZ1tdID0gW107XHJcbiAgcmFuZ2VGb250U2l6ZXM6IG51bWJlcltdID0gW107XHJcbiAgcmFuZ2VGb250Q29sb3JzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHJhbmdlRm9udFN0eWxlczogRm9udFN0eWxlW10gPSBbXTtcclxuICByYW5nZUludGVyaW9yQ29sb3JzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHJhbmdlRm9ybWF0czogc3RyaW5nW10gPSBbXTtcclxuICByYW5nZUhvcml6b250YWxBbGlnbm1lbnRzOiBYTEhBbGlnbltdID0gW107XHJcbiAgcmFuZ2VWZXJ0aWNhbEFsaWdubWVudHM6IFhsVkFsaWduW10gPSBbXTtcclxuXHJcbiAgYWRkQ29sdW1uKHByb3BlcnR5OiBzdHJpbmcsIHR5cGU6IFZhcmlhYmxlVHlwZSA9IDAsIGhlYWRlciA9ICcnLCBnZW5pc2xpayA9IDApIHtcclxuXHJcbiAgICBjb25zdCBjb2x1bW46IFhMVGFibGVDb2x1bW4gPSBuZXcgWExUYWJsZUNvbHVtbigpO1xyXG4gICAgY29uc3QgY29sdW1uSGVhZGVyID0gaGVhZGVyLnJlcGxhY2UoJzxwPicsICdcXHInKTtcclxuICAgIGNvbnN0IGNvbHVtbkNvdW50ID0gdGhpcy5jb2x1bW5zLmxlbmd0aCArIDE7XHJcblxyXG4gICAgY29sdW1uLnByb3BlcnR5ID0gcHJvcGVydHk7XHJcbiAgICBjb2x1bW4uYXJyYXlUeXBlID0gdHlwZTtcclxuICAgIGNvbHVtbi5jb2x1bW5ObyA9IGNvbHVtbkNvdW50O1xyXG4gICAgY29sdW1uLmhlYWRlciA9IG5ldyBYTFRhYmxlQ29sdW1uSGVhZGVyKGNvbHVtbkhlYWRlcik7XHJcblxyXG4gICAgY29sdW1uLmZvb3RlciA9IG5ldyBYTFRhYmxlQ29sdW1uRm9vdGVyKCk7XHJcbiAgICBjb2x1bW4uaG9yaXpvbnRhbEFsaWdubWVudCA9IFhMSEFsaWduLnhsSEFsaWduTm9uZTtcclxuICAgIGNvbHVtbi52ZXJ0aWNhbEFsaWdubWVudCA9IFhsVkFsaWduLnhsVkFsaWduTm9uZTtcclxuICAgIGNvbHVtbi5mb3JtYXQgPSAwO1xyXG4gICAgY29sdW1uLndpZHRoID0gZ2VuaXNsaWs7XHJcblxyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgVmFyaWFibGVUeXBlLklzaW50ZWdlcjpcclxuICAgICAgICBjb2x1bW4uZm9ybWF0ID0gMTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgVmFyaWFibGVUeXBlLklzbG9uZ2ludDpcclxuICAgICAgICBjb2x1bW4uZm9ybWF0ID0gMTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgVmFyaWFibGVUeXBlLklzcmVhbDpcclxuICAgICAgICBjb2x1bW4uZm9ybWF0ID0gMztcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgVmFyaWFibGVUeXBlLklzZGF0ZTpcclxuICAgICAgICBjb2x1bW4uZm9ybWF0ID0gRm9ybWF0bGFyLkZvcm1hdF9UYXJpaDtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaGVhZGVyU2F0aXJBZGV0ID0gdGhpcy5oZWFkZXIuc2F0aXJTYXlpc2k7XHJcbiAgICBjb25zdCB0ZW1wU2l6ZSA9IGNvbHVtbkhlYWRlci5zcGxpdCgnXFxyJykubGVuZ3RoO1xyXG4gICAgaWYgKHRlbXBTaXplID4gaGVhZGVyU2F0aXJBZGV0KSB7XHJcbiAgICAgIHRoaXMuaGVhZGVyLnNhdGlyU2F5aXNpID0gdGVtcFNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb2x1bW5zLnB1c2goY29sdW1uKTtcclxuICB9XHJcblxyXG4gIGNvbHVtbkZvcm1hdChmb3JtYXQ6IEZvcm1hdGxhciwgY29sdW1uTm8/OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGxldCBfY29sdW1uTm8gPSAwO1xyXG4gICAgaWYgKHR5cGVvZiBjb2x1bW5ObyA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgX2NvbHVtbk5vID0gdGhpcy5jb2x1bW5zLmxlbmd0aDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIF9jb2x1bW5ObyA9IGNvbHVtbk5vO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29sdW1uc1tfY29sdW1uTm8gLSAxXS5mb3JtYXQgPSBmb3JtYXQ7XHJcbiAgfVxyXG5cclxuICByb3dGb250Q29sb3JBZGQoY29sb3I6IFhMUmVuaywgcm93Tm8/OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGxldCBfcm93Tm8gPSAwO1xyXG4gICAgaWYgKHR5cGVvZiByb3dObyA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgX3Jvd05vID0gdGhpcy5yb3dzLmxlbmd0aDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIF9yb3dObyA9IHJvd05vO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucm93Rm9udENvbG9ycy5wdXNoKG5ldyBSb3dGb250Q29sb3IoY29sb3IsIF9yb3dObykpO1xyXG4gIH1cclxuXHJcbiAgcm93SW50ZXJpb3JDb2xvckFkZChjb2xvcjogWExSZW5rLCByb3dObz86IG51bWJlcik6IHZvaWQge1xyXG4gICAgbGV0IF9yb3dObyA9IDA7XHJcbiAgICBpZiAodHlwZW9mIHJvd05vID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgICBfcm93Tm8gPSB0aGlzLnJvd3MubGVuZ3RoO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgX3Jvd05vID0gcm93Tm87XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yb3dJbnRlcmlvckNvbG9ycy5wdXNoKG5ldyBSb3dJbnRlcmlvckNvbG9yKGNvbG9yLCBfcm93Tm8pKTtcclxuICB9XHJcblxyXG4gIHNldENvbHVtbkZvb3Rlcih0aXRsZTogc3RyaW5nLCBjb2x1bW5Obz86IG51bWJlcikge1xyXG4gICAgbGV0IF9jb2x1bW5ObyA9IDA7XHJcbiAgICBpZiAodHlwZW9mIGNvbHVtbk5vID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgICBfY29sdW1uTm8gPSB0aGlzLmNvbHVtbnMubGVuZ3RoO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgX2NvbHVtbk5vID0gY29sdW1uTm87XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbHVtbnNbX2NvbHVtbk5vIC0gMV0uc2V0Rm9vdGVyKHRpdGxlKTtcclxuXHJcbiAgfVxyXG5cclxuICBzZXRDb2x1bW5Gb290ZXJGdW5jdGlvbihmb290ZXJGdW5jdGlvbjogWExGdW5jcywgY29sdW1uTm8/OiBudW1iZXIpIHtcclxuICAgIGxldCBfY29sdW1uTm8gPSAwO1xyXG4gICAgaWYgKHR5cGVvZiBjb2x1bW5ObyA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgX2NvbHVtbk5vID0gdGhpcy5jb2x1bW5zLmxlbmd0aDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIF9jb2x1bW5ObyA9IGNvbHVtbk5vO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb2x1bW5zW19jb2x1bW5ObyAtIDFdLnNldEZvb3RlckZ1bmN0aW9uKGZvb3RlckZ1bmN0aW9uKTtcclxuXHJcbiAgfVxyXG5cclxuICBoaWRkZW5Sb3dzSW5pdCgpIHtcclxuICAgIHRoaXMuaGlkZGVuUm93cyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgc29ydEluaXQoKSB7XHJcbiAgICB0aGlzLnNvcnQgPSBbXTtcclxuICB9XHJcblxyXG4gIHJvd3NJbml0KCkge1xyXG4gICAgdGhpcy5yb3dzID0gW107XHJcbiAgfVxyXG5cclxuICBjb2x1bW5Gb3JtYXRzSW5pdCgpIHtcclxuICAgIHRoaXMuY29sdW1uRm9udE5hbWVzID0gW107XHJcbiAgICB0aGlzLmNvbHVtbkZvbnRTaXplcyA9IFtdO1xyXG4gICAgdGhpcy5jb2x1bW5Gb250Q29sb3JzID0gW107XHJcbiAgICB0aGlzLmNvbHVtbkZvbnRTdHlsZXMgPSBbXTtcclxuXHJcbiAgICB0aGlzLmNvbHVtbkludGVyaW9yQ29sb3JzID0gW107XHJcblxyXG4gICAgdGhpcy5jb2x1bW5IZWFkZXJGb250TmFtZXMgPSBbXTtcclxuICAgIHRoaXMuY29sdW1uSGVhZGVyRm9udFNpemVzID0gW107XHJcbiAgICB0aGlzLmNvbHVtbkhlYWRlckZvbnRDb2xvcnMgPSBbXTtcclxuICAgIHRoaXMuY29sdW1uSGVhZGVyRm9udFN0eWxlcyA9IFtdO1xyXG5cclxuICAgIHRoaXMuY29sdW1uSGVhZGVySW50ZXJpb3JDb2xvcnMgPSBbXTtcclxuXHJcbiAgICB0aGlzLmNvbHVtbkZvb3RlckZvbnROYW1lcyA9IFtdO1xyXG4gICAgdGhpcy5jb2x1bW5Gb290ZXJGb250U2l6ZXMgPSBbXTtcclxuICAgIHRoaXMuY29sdW1uRm9vdGVyRm9udENvbG9ycyA9IFtdO1xyXG4gICAgdGhpcy5jb2x1bW5Gb290ZXJGb250U3R5bGVzID0gW107XHJcblxyXG4gICAgdGhpcy5jb2x1bW5Gb290ZXJJbnRlcmlvckNvbG9ycyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcm93Rm9ybWF0c0luaXQoKSB7XHJcbiAgICB0aGlzLnJvd0ZvbnROYW1lcyA9IFtdO1xyXG4gICAgdGhpcy5yb3dGb250U2l6ZXMgPSBbXTtcclxuICAgIHRoaXMucm93Rm9udENvbG9ycyA9IFtdO1xyXG4gICAgdGhpcy5yb3dGb250U3R5bGVzID0gW107XHJcblxyXG4gICAgdGhpcy5yb3dJbnRlcmlvckNvbG9ycyA9IFtdO1xyXG4gICAgdGhpcy5yb3dGb3JtYXRzID0gW107XHJcblxyXG4gICAgdGhpcy5yb3dIb3Jpem9udGFsQWxpZ25tZW50cyA9IFtdO1xyXG4gICAgdGhpcy5yb3dWZXJ0aWNhbEFsaWdubWVudHMgPSBbXTtcclxuICB9XHJcblxyXG4gIGNlbGxGb3JtYXRzSW5pdCgpIHtcclxuICAgIHRoaXMuY2VsbEZvbnROYW1lcyA9IFtdO1xyXG4gICAgdGhpcy5jZWxsRm9udFNpemVzID0gW107XHJcbiAgICB0aGlzLmNlbGxGb250Q29sb3JzID0gW107XHJcbiAgICB0aGlzLmNlbGxGb250U3R5bGVzID0gW107XHJcblxyXG4gICAgdGhpcy5jZWxsSW50ZXJpb3JDb2xvcnMgPSBbXTtcclxuXHJcbiAgICB0aGlzLmNlbGxGb3JtYXRzID0gW107XHJcblxyXG4gICAgdGhpcy5jZWxsSG9yaXpvbnRhbEFsaWdubWVudHMgPSBbXTtcclxuICAgIHRoaXMuY2VsbFZlcnRpY2FsQWxpZ25tZW50cyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcmFuZ2VGb3JtYXRzSW5pdCgpIHtcclxuICAgIHRoaXMucmFuZ2VGb250TmFtZXMgPSBbXTtcclxuICAgIHRoaXMucmFuZ2VGb250U2l6ZXMgPSBbXTtcclxuICAgIHRoaXMucmFuZ2VGb250Q29sb3JzID0gW107XHJcbiAgICB0aGlzLnJhbmdlRm9udFN0eWxlcyA9IFtdO1xyXG4gICAgdGhpcy5yYW5nZUludGVyaW9yQ29sb3JzID0gW107XHJcbiAgICB0aGlzLnJhbmdlRm9ybWF0cyA9IFtdO1xyXG4gICAgdGhpcy5yYW5nZUhvcml6b250YWxBbGlnbm1lbnRzID0gW107XHJcbiAgICB0aGlzLnJhbmdlVmVydGljYWxBbGlnbm1lbnRzID0gW107XHJcbiAgfVxyXG5cclxuICBnZXQgX3NoZWV0TmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hlZXROYW1lO1xyXG4gIH1cclxuICBzZXQgX3NoZWV0TmFtZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNoZWV0TmFtZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBYTFRhYmxlQ29sdW1uRm9vdGVyIHtcclxuICB0aXRsZSA9ICcnO1xyXG4gIGZvbnQgPSBuZXcgWExGb250KCk7XHJcbiAgaW50ZXJpb3IgPSBuZXcgWExJbnRlcmlvcigpO1xyXG4gIGJvcmRlciA9IG5ldyBYTEJvcmRlcigpO1xyXG4gIGJhc2lsYWNhayA9IGZhbHNlO1xyXG4gIHNhdGlyU2F5aXNpID0gMTtcclxuICBpc0Z1bmN0aW9uID0gZmFsc2U7XHJcbiAgaG9yaXpvbnRhbEFsaWdubWVudDogWExIQWxpZ24gPSBYTEhBbGlnbi54bEhBbGlnbk5vbmU7XHJcbiAgdmVydGljYWxBbGlnbm1lbnQ6IFhsVkFsaWduID0gWGxWQWxpZ24ueGxWQWxpZ25Ob25lO1xyXG4gIGZ1bmN0aW9uOiBYTEZ1bmNzID0gWExGdW5jcy5Ob25lO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgWExUYWJsZUNvbHVtbiB7XHJcbiAgcHJvcGVydHkgPSAnJztcclxuICBhcnJheVR5cGU6IFZhcmlhYmxlVHlwZSA9IDA7XHJcbiAgY29sdW1uTm8gPSAwO1xyXG4gIGhlYWRlciA9IG5ldyBYTFRhYmxlQ29sdW1uSGVhZGVyKCk7XHJcbiAgZm9vdGVyID0gbmV3IFhMVGFibGVDb2x1bW5Gb290ZXIoKTtcclxuICBob3Jpem9udGFsQWxpZ25tZW50OiBYTEhBbGlnbiA9IFhMSEFsaWduLnhsSEFsaWduTm9uZTtcclxuICB2ZXJ0aWNhbEFsaWdubWVudDogWGxWQWxpZ24gPSBYbFZBbGlnbi54bFZBbGlnbk5vbmU7XHJcbiAgZm9ybWF0OiBGb3JtYXRsYXIgPSAwO1xyXG4gIHdpZHRoID0gMDtcclxuXHJcbiAgc2V0Rm9vdGVyRnVuY3Rpb24oZm9vdGVyRnVuY3Rpb246IFhMRnVuY3MpIHtcclxuICAgIHRoaXMuZm9vdGVyLmJhc2lsYWNhayA9IHRydWU7XHJcbiAgICB0aGlzLmZvb3Rlci5mdW5jdGlvbiA9IGZvb3RlckZ1bmN0aW9uO1xyXG4gICAgdGhpcy5mb290ZXIuaXNGdW5jdGlvbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBzZXRGb290ZXIodGl0bGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5mb290ZXIuYmFzaWxhY2FrID0gdHJ1ZTtcclxuICAgIHRoaXMuZm9vdGVyLnRpdGxlID0gdGl0bGU7XHJcbiAgICB0aGlzLmZvb3Rlci5pc0Z1bmN0aW9uID0gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUm93Rm9udENvbG9yIHtcclxuICBjb2xvcjogWExSZW5rO1xyXG4gIHJvd05vOiBudW1iZXI7XHJcbiAgY29uc3RydWN0b3IoY29sb3I6IFhMUmVuaywgcm93Tm86IG51bWJlcikge1xyXG4gICAgdGhpcy5jb2xvciA9IGNvbG9yO1xyXG4gICAgdGhpcy5yb3dObyA9IHJvd05vO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJvd0ludGVyaW9yQ29sb3Ige1xyXG4gIGNvbG9yOiBYTFJlbms7XHJcbiAgcm93Tm86IG51bWJlcjtcclxuICBjb25zdHJ1Y3Rvcihjb2xvcjogWExSZW5rLCByb3dObzogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmNvbG9yID0gY29sb3I7XHJcbiAgICB0aGlzLnJvd05vID0gcm93Tm87XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=
435
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGxDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYXBpL21vZGVscy94bENvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEYsTUFBTSxPQUFPLFFBQVE7SUF3Qm5CLFlBQVksUUFBaUIsRUFBRSxRQUFpQjtRQXZCaEQsU0FBSSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7UUFDcEIsZ0JBQVcsR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBRTNCLHNCQUFpQixHQUFHLG1CQUFtQixDQUFDO1FBQ3hDLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLDZCQUF3QixHQUFHLE9BQU8sQ0FBQztRQUNuQyxzQkFBaUIsR0FBRyxRQUFRLENBQUM7UUFDN0IsdUJBQWtCLEdBQUcsU0FBUyxDQUFDO1FBQy9CLFdBQU0sR0FBRyxTQUFTLENBQUM7UUFDbkIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUVmLGdCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUNwQyxhQUFRLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUU1QixXQUFNLEdBQWEsRUFBRSxDQUFDO1FBQ3RCLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDdkIsUUFBRyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7UUFFbEIsV0FBTSxHQUFjLEVBQUUsQ0FBQztRQUV2QixXQUFNLEdBQWMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBR25DLElBQUksQ0FBQyxPQUFPLFFBQVEsS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sUUFBUSxLQUFLLFdBQVcsQ0FBQyxFQUFFO1lBQzFFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRXZDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTFCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFhO1FBQzdCLE1BQU0sUUFBUSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDdkMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDN0MsUUFBUSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFFMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLEtBQUssR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzVCLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDZCxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDOUIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQy9CLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQ3pDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzNDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3JDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ3pDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQ3pDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBRTNDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRTFCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFekI7Ozs7Ozs7O01BUUY7UUFFRSxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxTQUFpQixFQUFFLGVBQXVCLEVBQUUsV0FBb0IsRUFBRSxTQUFrQjtRQUMzRyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDekMsSUFBSSxZQUFZLEdBQUcsZUFBZSxDQUFDO1FBRW5DLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDckQsVUFBVSxHQUFHLFNBQVMsQ0FBQztTQUN4QjtRQUVELElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDekQsWUFBWSxHQUFHLFdBQVcsQ0FBQztTQUM1QjtRQUVELElBQUksZUFBZSxLQUFLLFlBQVksRUFBRTtZQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxHQUFHLGVBQWUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDNUg7YUFDSTtZQUNILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLEdBQUcsZUFBZSxDQUFDLFFBQVEsRUFBRSxHQUFHLEdBQUcsR0FBRyxZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUcsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQzVKO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBWTtRQUN4QixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQzdDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxlQUFlO0lBQTVCO1FBQ0UsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLFNBQUksR0FBRyxJQUFJLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekIsYUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNoQixDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8sTUFBTTtJQUFuQjtRQUNFLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsVUFBSyxHQUFHLEVBQUUsQ0FBQztJQUNiLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxNQUFNO0lBTWpCLFlBQVksUUFBaUIsRUFBRSxRQUFpQjtRQUxoRCxTQUFJLEdBQUcsVUFBVSxDQUFDO1FBQ2xCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixVQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNyQixVQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUd0QixJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsRUFBRTtZQUNuQyxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztTQUN0QjtRQUVELElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFO1lBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLFVBQVU7SUFLckIsWUFBWSxRQUFpQixFQUFFLFFBQWlCO1FBSmhELFNBQUksR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ3BCLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztRQUNoQyxxQkFBZ0IsR0FBYSxFQUFFLENBQUM7UUFHOUIsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUU7WUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1NBQzNCO1FBRUQsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUU7WUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1NBQzNCO0lBRUgsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLEtBQUs7SUFBbEI7UUFDRSxTQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNwQixxQkFBZ0IsR0FBYSxFQUFFLENBQUM7UUFDaEMscUJBQWdCLEdBQWEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxPQUFPO0lBR2xCLFlBQVksT0FBZTtRQUYzQixZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ1osY0FBUyxHQUFHLENBQUMsQ0FBQztRQUVaLElBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1NBQ3hCO0lBRUgsQ0FBQztDQUVGO0FBRUQsTUFBTSxPQUFPLFVBQVU7SUFBdkI7UUFDRSxVQUFLLEdBQVcsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMvQixDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8sUUFBUTtJQUFyQjtRQUNFLFNBQUksR0FBRyxNQUFNLENBQUM7UUFDZCxjQUFTLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQztRQUNyQyxXQUFNLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUM5QixVQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUN2QixDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8sbUJBQW1CO0lBVTlCLFlBQVksTUFBTSxHQUFHLEVBQUU7UUFUdkIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLHdCQUFtQixHQUFhLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDdEQsc0JBQWlCLEdBQWEsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUNwRCxTQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNwQixhQUFRLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUM1QixXQUFNLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRWxCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxpQkFBaUI7SUFBOUI7UUFDRSxTQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNwQixhQUFRLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUM1QixXQUFNLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztJQUMxQixDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8sT0FBTztJQUFwQjtRQUNFLFlBQU8sR0FBb0IsRUFBRSxDQUFDO1FBQzlCLFdBQU0sR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDbkMsU0FBSSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUMvQixXQUFNLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQ25DLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFFWixRQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsUUFBRyxHQUFHLENBQUMsQ0FBQztRQUNSLGdCQUFXLEdBQUcsWUFBWSxDQUFDO1FBQzNCLGNBQVMsR0FBRyxTQUFTLENBQUM7UUFDdEIsZUFBVSxHQUFhLEVBQUUsQ0FBQztRQUMxQixTQUFJLEdBQWEsRUFBRSxDQUFDO1FBQ3BCLFNBQUksR0FBYSxFQUFFLENBQUM7UUFDcEIsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFDL0Isb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFDL0IscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBQ2hDLHFCQUFnQixHQUFnQixFQUFFLENBQUM7UUFDbkMseUJBQW9CLEdBQWEsRUFBRSxDQUFDO1FBQ3BDLDBCQUFxQixHQUFhLEVBQUUsQ0FBQztRQUNyQywwQkFBcUIsR0FBYSxFQUFFLENBQUM7UUFDckMsMkJBQXNCLEdBQWEsRUFBRSxDQUFDO1FBQ3RDLDJCQUFzQixHQUFnQixFQUFFLENBQUM7UUFDekMsK0JBQTBCLEdBQWEsRUFBRSxDQUFDO1FBQzFDLDBCQUFxQixHQUFhLEVBQUUsQ0FBQztRQUNyQywwQkFBcUIsR0FBYSxFQUFFLENBQUM7UUFDckMsMkJBQXNCLEdBQWEsRUFBRSxDQUFDO1FBQ3RDLDJCQUFzQixHQUFnQixFQUFFLENBQUM7UUFDekMsK0JBQTBCLEdBQWEsRUFBRSxDQUFDO1FBQzFDLGlCQUFZLEdBQWEsRUFBRSxDQUFDO1FBQzVCLGlCQUFZLEdBQWEsRUFBRSxDQUFDO1FBQzVCLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUNuQyxrQkFBYSxHQUFnQixFQUFFLENBQUM7UUFDaEMsc0JBQWlCLEdBQXVCLEVBQUUsQ0FBQztRQUMzQyxlQUFVLEdBQWEsRUFBRSxDQUFDO1FBQzFCLDRCQUF1QixHQUFlLEVBQUUsQ0FBQztRQUN6QywwQkFBcUIsR0FBZSxFQUFFLENBQUM7UUFDdkMsa0JBQWEsR0FBYSxFQUFFLENBQUM7UUFDN0Isa0JBQWEsR0FBYSxFQUFFLENBQUM7UUFDN0IsbUJBQWMsR0FBYSxFQUFFLENBQUM7UUFDOUIsbUJBQWMsR0FBZ0IsRUFBRSxDQUFDO1FBQ2pDLHVCQUFrQixHQUFhLEVBQUUsQ0FBQztRQUNsQyxnQkFBVyxHQUFhLEVBQUUsQ0FBQztRQUMzQiw2QkFBd0IsR0FBZSxFQUFFLENBQUM7UUFDMUMsMkJBQXNCLEdBQWUsRUFBRSxDQUFDO1FBQ3hDLG1CQUFjLEdBQWEsRUFBRSxDQUFDO1FBQzlCLG1CQUFjLEdBQWEsRUFBRSxDQUFDO1FBQzlCLG9CQUFlLEdBQWEsRUFBRSxDQUFDO1FBQy9CLG9CQUFlLEdBQWdCLEVBQUUsQ0FBQztRQUNsQyx3QkFBbUIsR0FBYSxFQUFFLENBQUM7UUFDbkMsaUJBQVksR0FBYSxFQUFFLENBQUM7UUFDNUIsOEJBQXlCLEdBQWUsRUFBRSxDQUFDO1FBQzNDLDRCQUF1QixHQUFlLEVBQUUsQ0FBQztJQXdMM0MsQ0FBQztJQXRMQyxTQUFTLENBQUMsUUFBZ0IsRUFBRSxPQUFxQixDQUFDLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxRQUFRLEdBQUcsQ0FBQztRQUUzRSxNQUFNLE1BQU0sR0FBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNsRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFFNUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDM0IsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDeEIsTUFBTSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7UUFDOUIsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXRELE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ25ELE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1FBRXhCLFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxZQUFZLENBQUMsT0FBTztnQkFDdkIsTUFBTSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDO2dCQUNyQyxNQUFNO1lBRVIsS0FBSyxZQUFZLENBQUMsT0FBTztnQkFDdkIsTUFBTSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDO2dCQUNyQyxNQUFNO1lBRVIsS0FBSyxZQUFZLENBQUMsSUFBSTtnQkFDcEIsTUFBTSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDO2dCQUNyQyxNQUFNO1lBRVIsS0FBSyxZQUFZLENBQUMsSUFBSTtnQkFDcEIsTUFBTSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDO2dCQUN0QyxNQUFNO1lBRVI7Z0JBQ0UsTUFBTTtTQUNUO1FBRUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDaEQsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDakQsSUFBSSxRQUFRLEdBQUcsZUFBZSxFQUFFO1lBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztTQUNwQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBdUIsRUFBRSxRQUFpQjtRQUNyRCxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUU7WUFDbkMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1NBQ2pDO2FBQU07WUFDTCxTQUFTLEdBQUcsUUFBUSxDQUFDO1NBQ3RCO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUM5QyxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWEsRUFBRSxLQUFjO1FBQzNDLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksT0FBTyxLQUFLLEtBQUssV0FBVyxFQUFFO1lBQ2hDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUMzQjthQUFNO1lBQ0wsTUFBTSxHQUFHLEtBQUssQ0FBQztTQUNoQjtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFhLEVBQUUsS0FBYztRQUMvQyxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDZixJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVcsRUFBRTtZQUNoQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDM0I7YUFBTTtZQUNMLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDaEI7UUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFhLEVBQUUsUUFBaUI7UUFDOUMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFO1lBQ25DLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUNqQzthQUFNO1lBQ0wsU0FBUyxHQUFHLFFBQVEsQ0FBQztTQUN0QjtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUUvQyxDQUFDO0lBRUQsdUJBQXVCLENBQUMsY0FBdUIsRUFBRSxRQUFpQjtRQUNoRSxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUU7WUFDbkMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1NBQ2pDO2FBQU07WUFDTCxTQUFTLEdBQUcsUUFBUSxDQUFDO1NBQ3RCO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFaEUsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUUzQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1FBRS9CLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7UUFFakMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLEVBQUUsQ0FBQztRQUVyQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsRUFBRSxDQUFDO1FBRWpDLElBQUksQ0FBQywwQkFBMEIsR0FBRyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBRXJCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7UUFFN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFVBQVUsQ0FBQyxLQUFhO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7Q0FFRjtBQUVELE1BQU0sT0FBTyxtQkFBbUI7SUFBaEM7UUFDRSxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsU0FBSSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7UUFDcEIsYUFBUSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDNUIsV0FBTSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDeEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLHdCQUFtQixHQUFhLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDdEQsc0JBQWlCLEdBQWEsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUNwRCxhQUFRLEdBQVksT0FBTyxDQUFDLElBQUksQ0FBQztJQUNuQyxDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8sYUFBYTtJQUExQjtRQUNFLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxjQUFTLEdBQWlCLENBQUMsQ0FBQztRQUM1QixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsV0FBTSxHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUNuQyxXQUFNLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQ25DLHdCQUFtQixHQUFhLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDdEQsc0JBQWlCLEdBQWEsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUNwRCxXQUFNLEdBQW9CLENBQUMsQ0FBQztRQUM1QixVQUFLLEdBQUcsQ0FBQyxDQUFDO0lBYVosQ0FBQztJQVhDLGlCQUFpQixDQUFDLGNBQXVCO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUM7UUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sWUFBWTtJQUd2QixZQUFZLEtBQWEsRUFBRSxLQUFhO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsWUFBWSxLQUFhLEVBQUUsS0FBYTtRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb250U3R5bGUsIE51bWJlckZvcm1hdGxhciwgVmFyaWFibGVUeXBlLCBYTFJlbmsgfSBmcm9tICcuL2ZvdXJEQ29uc3RhbnRzJztcclxuaW1wb3J0IHsgWGxCb3JkZXJXZWlnaCwgWExGdW5jcywgWExIQWxpZ24sIFhMTGluZVN0eWxlLCBYbFZBbGlnbiB9IGZyb20gJy4veGxDb25zdGFudHMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFhMQ29uZmlnIHtcclxuICBsb2dvID0gbmV3IFhMTG9nbygpO1xyXG4gIGRlZmF1bHRGb250ID0gbmV3IFhMRm9udCgpO1xyXG5cclxuICBjdXJyZW50VGFibGVTdHlsZSA9ICdUYWJsZVN0eWxlTGlnaHQxMCc7XHJcbiAgY3VycmVudFRhYmxlID0gMTtcclxuICBjdXJyZW50QXBwbGljYXRpb25PYmplY3QgPSAneGxBcHAnO1xyXG4gIGN1cnJlbnRCb29rT2JqZWN0ID0gJ3hsQm9vayc7XHJcbiAgY3VycmVudFNoZWV0T2JqZWN0ID0gJ3hsU2hlZXQnO1xyXG4gIGF1dGhvciA9ICdNZWRQbGFuJztcclxuICBzaWZpcmxhcmlCYXNtYSA9IGZhbHNlO1xyXG4gIHNoZWV0TmFtZSA9ICcnO1xyXG5cclxuICB1c3RCaWxnaWxlcjogWExVc3RCaWxnaVNhdGlyW10gPSBbXTtcclxuICB1c3RCaWxnaSA9IG5ldyBYTFVzdEJpbGdpKCk7XHJcblxyXG4gIG5vdGxhcjogc3RyaW5nW10gPSBbXTtcclxuICBzY3JpcHRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIG5vdCA9IG5ldyBYTE5vdCgpO1xyXG5cclxuICB0YWJsZXM6IFhMVGFibGVbXSA9IFtdO1xyXG5cclxuICBzaGVldHM6IFhMU2hlZXRbXSA9IFtuZXcgWExTaGVldCgxKV07XHJcblxyXG4gIGNvbnN0cnVjdG9yKGZvbnROYW1lPzogc3RyaW5nLCBmb250U2l6ZT86IG51bWJlcikge1xyXG4gICAgaWYgKCh0eXBlb2YgZm9udE5hbWUgIT09ICd1bmRlZmluZWQnKSB8fCAodHlwZW9mIGZvbnRTaXplICE9PSAndW5kZWZpbmVkJykpIHtcclxuICAgICAgdGhpcy5kZWZhdWx0Rm9udCA9IG5ldyBYTEZvbnQoZm9udE5hbWUsIGZvbnRTaXplKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHRhYmxlID0gdGhpcy5hZGRUYWJsZSgpO1xyXG4gICAgdGFibGUudGFibGVObyA9IHRoaXMudGFibGVzLmxlbmd0aCArIDE7XHJcblxyXG4gICAgdGhpcy50YWJsZXMucHVzaCh0YWJsZSk7XHJcblxyXG4gIH1cclxuXHJcbiAgdXN0QmlsZ2lTYXRpckVrbGUoc2F0aXI6IHN0cmluZykge1xyXG4gICAgY29uc3QgdXN0QmlsZ2kgPSBuZXcgWExVc3RCaWxnaVNhdGlyKCk7XHJcbiAgICB1c3RCaWxnaS5yb3dObyA9IHRoaXMudXN0QmlsZ2lsZXIubGVuZ3RoICsgMTtcclxuICAgIHVzdEJpbGdpLnVzdEJpbGdpID0gc2F0aXI7XHJcblxyXG4gICAgdGhpcy51c3RCaWxnaWxlci5wdXNoKHVzdEJpbGdpKTtcclxuICB9XHJcblxyXG4gIGFkZFRhYmxlKCk6IFhMVGFibGUge1xyXG4gICAgY29uc3QgdGFibGUgPSBuZXcgWExUYWJsZSgpO1xyXG4gICAgdGFibGUuc29sID0gMTtcclxuICAgIHRhYmxlLnVzdCA9IDE7XHJcbiAgICB0YWJsZS5oZWFkZXIuYmFzaWxhY2FrID0gdHJ1ZTtcclxuICAgIHRhYmxlLmZvb3Rlci5iYXNpbGFjYWsgPSBmYWxzZTtcclxuICAgIHRhYmxlLmhlYWRlciA9IG5ldyBYTFRhYmxlQ29sdW1uSGVhZGVyKCk7XHJcbiAgICB0YWJsZS5oZWFkZXIuaW50ZXJpb3IuY29sb3IgPSBYTFJlbmsuV2hpdGU7XHJcbiAgICB0YWJsZS5kYXRhID0gbmV3IFhMVGFibGVDb2x1bW5EYXRhKCk7XHJcbiAgICB0YWJsZS5kYXRhLmludGVyaW9yLmNvbG9yID0gWExSZW5rLldoaXRlO1xyXG4gICAgdGFibGUuZm9vdGVyID0gbmV3IFhMVGFibGVDb2x1bW5Gb290ZXIoKTtcclxuICAgIHRhYmxlLmZvb3Rlci5pbnRlcmlvci5jb2xvciA9IFhMUmVuay5XaGl0ZTtcclxuXHJcbiAgICB0YWJsZS5oaWRkZW5Sb3dzSW5pdCgpO1xyXG4gICAgdGFibGUuc29ydEluaXQoKTtcclxuICAgIHRhYmxlLnJvd3NJbml0KCk7XHJcbiAgICB0YWJsZS5jb2x1bW5Gb3JtYXRzSW5pdCgpO1xyXG5cclxuICAgIHRhYmxlLnJvd0Zvcm1hdHNJbml0KCk7XHJcbiAgICB0YWJsZS5jZWxsRm9ybWF0c0luaXQoKTtcclxuICAgIHRhYmxlLnJhbmdlRm9ybWF0c0luaXQoKTtcclxuXHJcbiAgICAvKlxyXG4gICAgICAgIFhMX1RfSGVhZGVyQm9yZGVyQWxsU2V0KFV0aWxzQm9yZGVyVHVtdTsgeGxDb250aW51b3VzOyB4bFRoaW47IGNsQmxhY2spXHJcbiAgICAgICAgWExfVF9EYXRhQm9yZGVyQWxsU2V0KFV0aWxzQm9yZGVyVHVtdTsgeGxDb250aW51b3VzOyB4bFRoaW47IGNsQmxhY2spXHJcbiAgICAgICAgWExfVF9Gb290ZXJCb3JkZXJBbGxTZXQoVXRpbHNCb3JkZXJUdW11OyB4bENvbnRpbnVvdXM7IHhsVGhpbjsgY2xCbGFjaylcclxuICAgICAgICBYTF9UX0hlYWRlckZvbnRBbGxTZXQoWExfRGVmYXVsdEZvbnROYW1lIDsgWExfRGVmYXVsdEZvbnRTaXplOyBQbGFpbjsgY2xCbGFjaylcclxuICAgICAgICBYTF9UX0RhdGFGb250QWxsU2V0KFhMX0RlZmF1bHRGb250TmFtZSA7IFhMX0RlZmF1bHRGb250U2l6ZTsgUGxhaW47IGNsQmxhY2spXHJcbiAgICAgICAgWExfVF9Gb290ZXJGb250QWxsU2V0KFhMX0RlZmF1bHRGb250TmFtZSA7IFhMX0RlZmF1bHRGb250U2l6ZTsgUGxhaW47IGNsQmxhY2spXHJcbiAgICAgICAgWExfVF9TaGVldE5hbWVTZXQoWExfU19DdXJyZW50KVxyXG4qL1xyXG5cclxuICAgIHJldHVybiB0YWJsZTtcclxuICB9XHJcblxyXG4gIHNoZWV0Um93c1Jvd0hlaWdodFNjcmlwdChyb3dIZWlnaHQ6IG51bWJlciwgYmFzbGFuZ2ljU2F0aXJpOiBudW1iZXIsIGJpdGlzU2F0aXJpPzogbnVtYmVyLCBzaGVldE5hbWU/OiBzdHJpbmcpIHtcclxuICAgIGxldCBfc2hlZXROYW1lID0gdGhpcy5jdXJyZW50U2hlZXRPYmplY3Q7XHJcbiAgICBsZXQgX2JpdGlzU2F0aXJpID0gYmFzbGFuZ2ljU2F0aXJpO1xyXG5cclxuICAgIGlmICgoc2hlZXROYW1lICE9PSB1bmRlZmluZWQpICYmIChzaGVldE5hbWUgIT09IG51bGwpKSB7XHJcbiAgICAgIF9zaGVldE5hbWUgPSBzaGVldE5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKChiaXRpc1NhdGlyaSAhPT0gdW5kZWZpbmVkKSAmJiAoYml0aXNTYXRpcmkgIT09IG51bGwpKSB7XHJcbiAgICAgIF9iaXRpc1NhdGlyaSA9IGJpdGlzU2F0aXJpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChiYXNsYW5naWNTYXRpcmkgPT09IF9iaXRpc1NhdGlyaSkge1xyXG4gICAgICB0aGlzLnNjcmlwdHMucHVzaChfc2hlZXROYW1lICsgJy5Sb3dzKFwiJyArIGJhc2xhbmdpY1NhdGlyaS50b1N0cmluZygpICsgJ1wiKS5Sb3dIZWlnaHQgPSAnICsgdGhpcy5WQlNSZWFsVG9UZXh0KHJvd0hlaWdodCkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2NyaXB0cy5wdXNoKF9zaGVldE5hbWUgKyAnLlJvd3MoXCInICsgYmFzbGFuZ2ljU2F0aXJpLnRvU3RyaW5nKCkgKyAnOicgKyBfYml0aXNTYXRpcmkudG9TdHJpbmcoKSArICdcIikuUm93SGVpZ2h0ID0gJyArIHRoaXMuVkJTUmVhbFRvVGV4dChyb3dIZWlnaHQpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZFNjcmlwdChzY3JpcHQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5zY3JpcHRzLnB1c2goc2NyaXB0KTtcclxuICB9XHJcblxyXG4gIFZCU1JlYWxUb1RleHQoc2F5aTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBzYXlpLnRvU3RyaW5nKCkucmVwbGFjZSgvWyxdL2csICcuJylcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBYTFVzdEJpbGdpU2F0aXIge1xyXG4gIHJvd05vID0gMDtcclxuICBmb250ID0gbmV3IFhMRm9udCgnJywgMCk7XHJcbiAgdXN0QmlsZ2kgPSAnJztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFhMTG9nbyB7XHJcbiAgZ2VuaXNsaWsgPSAwO1xyXG4gIHl1a3Nla2xpayA9IDA7XHJcbiAgdXN0TWFyamluID0gMDtcclxuICBzb2xNYXJqaW4gPSAwO1xyXG4gIGViYXRQaXhlbG1pID0gZmFsc2U7XHJcbiAgZWJhdCA9ICcnO1xyXG4gIGtvbnVtID0gJyc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBYTEZvbnQge1xyXG4gIG5hbWUgPSAnU2Vnb2UgVUknO1xyXG4gIHNpemUgPSAxMTtcclxuICBjb2xvciA9IFhMUmVuay5CbGFjaztcclxuICBzdHlsZSA9IEZvbnRTdHlsZS5QbGFpbjtcclxuXHJcbiAgY29uc3RydWN0b3IoZm9udE5hbWU/OiBzdHJpbmcsIGZvbnRTaXplPzogbnVtYmVyKSB7XHJcbiAgICBpZiAodHlwZW9mIGZvbnROYW1lICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICB0aGlzLm5hbWUgPSBmb250TmFtZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIGZvbnRTaXplICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICB0aGlzLnNpemUgPSBmb250U2l6ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBYTFVzdEJpbGdpIHtcclxuICBmb250ID0gbmV3IFhMRm9udCgpO1xyXG4gIGNvbHVtbkZvbnRDb2xvcnM6IHN0cmluZ1tdID0gW107XHJcbiAgY29sdW1uRm9udFN0eWxlczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoZm9udE5hbWU/OiBzdHJpbmcsIGZvbnRTaXplPzogbnVtYmVyKSB7XHJcbiAgICBpZiAodHlwZW9mIGZvbnROYW1lICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICB0aGlzLmZvbnQubmFtZSA9IGZvbnROYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2YgZm9udFNpemUgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHRoaXMuZm9udC5zaXplID0gZm9udFNpemU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFhMTm90IHtcclxuICBmb250ID0gbmV3IFhMRm9udCgpO1xyXG4gIGNvbHVtbkZvbnRDb2xvcnM6IHN0cmluZ1tdID0gW107XHJcbiAgY29sdW1uRm9udFN0eWxlczogc3RyaW5nW10gPSBbXTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFhMU2hlZXQge1xyXG4gIHNoZWV0Tm8gPSAwO1xyXG4gIHNoZWV0TmFtZSA9IDA7XHJcbiAgY29uc3RydWN0b3Ioc2hlZXRObzogbnVtYmVyKSB7XHJcbiAgICBpZiAodHlwZW9mIHNoZWV0Tm8gIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHRoaXMuc2hlZXRObyA9IHNoZWV0Tm87XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBYTEludGVyaW9yIHtcclxuICBjb2xvcjogWExSZW5rID0gWExSZW5rLldoaXRlO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgWExCb3JkZXIge1xyXG4gIHR5cGUgPSAnVMO8bcO8JztcclxuICBsaW5lU3R5bGUgPSBYTExpbmVTdHlsZS54bENvbnRpbnVvdXM7XHJcbiAgd2VpZ2h0ID0gWGxCb3JkZXJXZWlnaC54bFRoaW47XHJcbiAgY29sb3IgPSBYTFJlbmsuQmxhY2s7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBYTFRhYmxlQ29sdW1uSGVhZGVyIHtcclxuICB0aXRsZSA9ICcnO1xyXG4gIGhvcml6b250YWxBbGlnbm1lbnQ6IFhMSEFsaWduID0gWExIQWxpZ24ueGxIQWxpZ25Ob25lO1xyXG4gIHZlcnRpY2FsQWxpZ25tZW50OiBYbFZBbGlnbiA9IFhsVkFsaWduLnhsVkFsaWduTm9uZTtcclxuICBmb250ID0gbmV3IFhMRm9udCgpO1xyXG4gIGludGVyaW9yID0gbmV3IFhMSW50ZXJpb3IoKTtcclxuICBib3JkZXIgPSBuZXcgWExCb3JkZXIoKTtcclxuICBiYXNpbGFjYWsgPSB0cnVlO1xyXG4gIHNhdGlyU2F5aXNpID0gMTtcclxuICBpc011bHRpTGluZSA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKGhlYWRlciA9ICcnKSB7XHJcbiAgICB0aGlzLnRpdGxlID0gaGVhZGVyO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFhMVGFibGVDb2x1bW5EYXRhIHtcclxuICBmb250ID0gbmV3IFhMRm9udCgpO1xyXG4gIGludGVyaW9yID0gbmV3IFhMSW50ZXJpb3IoKTtcclxuICBib3JkZXIgPSBuZXcgWExCb3JkZXIoKTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFhMVGFibGUge1xyXG4gIGNvbHVtbnM6IFhMVGFibGVDb2x1bW5bXSA9IFtdO1xyXG4gIGhlYWRlciA9IG5ldyBYTFRhYmxlQ29sdW1uSGVhZGVyKCk7XHJcbiAgZGF0YSA9IG5ldyBYTFRhYmxlQ29sdW1uRGF0YSgpO1xyXG4gIGZvb3RlciA9IG5ldyBYTFRhYmxlQ29sdW1uRm9vdGVyKCk7XHJcbiAgdGFibGVObyA9IDE7XHJcbiAgY29sbGVjdGlvbjogc3RyaW5nW107XHJcbiAgc29sID0gMTtcclxuICB1c3QgPSAxO1xyXG4gIHZlcmlLYXluYWdpID0gJ0NvbGxlY3Rpb24nO1xyXG4gIHNoZWV0TmFtZSA9ICd4bFNoZWV0JztcclxuICBoaWRkZW5Sb3dzOiBudW1iZXJbXSA9IFtdO1xyXG4gIHNvcnQ6IG51bWJlcltdID0gW107XHJcbiAgcm93czogc3RyaW5nW10gPSBbXTtcclxuICBjb2x1bW5Gb250TmFtZXM6IHN0cmluZ1tdID0gW107XHJcbiAgY29sdW1uRm9udFNpemVzOiBudW1iZXJbXSA9IFtdO1xyXG4gIGNvbHVtbkZvbnRDb2xvcnM6IHN0cmluZ1tdID0gW107XHJcbiAgY29sdW1uRm9udFN0eWxlczogRm9udFN0eWxlW10gPSBbXTtcclxuICBjb2x1bW5JbnRlcmlvckNvbG9yczogc3RyaW5nW10gPSBbXTtcclxuICBjb2x1bW5IZWFkZXJGb250TmFtZXM6IHN0cmluZ1tdID0gW107XHJcbiAgY29sdW1uSGVhZGVyRm9udFNpemVzOiBudW1iZXJbXSA9IFtdO1xyXG4gIGNvbHVtbkhlYWRlckZvbnRDb2xvcnM6IHN0cmluZ1tdID0gW107XHJcbiAgY29sdW1uSGVhZGVyRm9udFN0eWxlczogRm9udFN0eWxlW10gPSBbXTtcclxuICBjb2x1bW5IZWFkZXJJbnRlcmlvckNvbG9yczogc3RyaW5nW10gPSBbXTtcclxuICBjb2x1bW5Gb290ZXJGb250TmFtZXM6IHN0cmluZ1tdID0gW107XHJcbiAgY29sdW1uRm9vdGVyRm9udFNpemVzOiBudW1iZXJbXSA9IFtdO1xyXG4gIGNvbHVtbkZvb3RlckZvbnRDb2xvcnM6IHN0cmluZ1tdID0gW107XHJcbiAgY29sdW1uRm9vdGVyRm9udFN0eWxlczogRm9udFN0eWxlW10gPSBbXTtcclxuICBjb2x1bW5Gb290ZXJJbnRlcmlvckNvbG9yczogc3RyaW5nW10gPSBbXTtcclxuICByb3dGb250TmFtZXM6IHN0cmluZ1tdID0gW107XHJcbiAgcm93Rm9udFNpemVzOiBudW1iZXJbXSA9IFtdO1xyXG4gIHJvd0ZvbnRDb2xvcnM6IFJvd0ZvbnRDb2xvcltdID0gW107XHJcbiAgcm93Rm9udFN0eWxlczogRm9udFN0eWxlW10gPSBbXTtcclxuICByb3dJbnRlcmlvckNvbG9yczogUm93SW50ZXJpb3JDb2xvcltdID0gW107XHJcbiAgcm93Rm9ybWF0czogc3RyaW5nW10gPSBbXTtcclxuICByb3dIb3Jpem9udGFsQWxpZ25tZW50czogWExIQWxpZ25bXSA9IFtdO1xyXG4gIHJvd1ZlcnRpY2FsQWxpZ25tZW50czogWGxWQWxpZ25bXSA9IFtdO1xyXG4gIGNlbGxGb250TmFtZXM6IHN0cmluZ1tdID0gW107XHJcbiAgY2VsbEZvbnRTaXplczogbnVtYmVyW10gPSBbXTtcclxuICBjZWxsRm9udENvbG9yczogc3RyaW5nW10gPSBbXTtcclxuICBjZWxsRm9udFN0eWxlczogRm9udFN0eWxlW10gPSBbXTtcclxuICBjZWxsSW50ZXJpb3JDb2xvcnM6IHN0cmluZ1tdID0gW107XHJcbiAgY2VsbEZvcm1hdHM6IHN0cmluZ1tdID0gW107XHJcbiAgY2VsbEhvcml6b250YWxBbGlnbm1lbnRzOiBYTEhBbGlnbltdID0gW107XHJcbiAgY2VsbFZlcnRpY2FsQWxpZ25tZW50czogWGxWQWxpZ25bXSA9IFtdO1xyXG4gIHJhbmdlRm9udE5hbWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHJhbmdlRm9udFNpemVzOiBudW1iZXJbXSA9IFtdO1xyXG4gIHJhbmdlRm9udENvbG9yczogc3RyaW5nW10gPSBbXTtcclxuICByYW5nZUZvbnRTdHlsZXM6IEZvbnRTdHlsZVtdID0gW107XHJcbiAgcmFuZ2VJbnRlcmlvckNvbG9yczogc3RyaW5nW10gPSBbXTtcclxuICByYW5nZUZvcm1hdHM6IHN0cmluZ1tdID0gW107XHJcbiAgcmFuZ2VIb3Jpem9udGFsQWxpZ25tZW50czogWExIQWxpZ25bXSA9IFtdO1xyXG4gIHJhbmdlVmVydGljYWxBbGlnbm1lbnRzOiBYbFZBbGlnbltdID0gW107XHJcblxyXG4gIGFkZENvbHVtbihwcm9wZXJ0eTogc3RyaW5nLCB0eXBlOiBWYXJpYWJsZVR5cGUgPSAwLCBoZWFkZXIgPSAnJywgZ2VuaXNsaWsgPSAwKSB7XHJcblxyXG4gICAgY29uc3QgY29sdW1uOiBYTFRhYmxlQ29sdW1uID0gbmV3IFhMVGFibGVDb2x1bW4oKTtcclxuICAgIGNvbnN0IGNvbHVtbkhlYWRlciA9IGhlYWRlci5yZXBsYWNlKCc8cD4nLCAnXFxyJyk7XHJcbiAgICBjb25zdCBjb2x1bW5Db3VudCA9IHRoaXMuY29sdW1ucy5sZW5ndGggKyAxO1xyXG5cclxuICAgIGNvbHVtbi5wcm9wZXJ0eSA9IHByb3BlcnR5O1xyXG4gICAgY29sdW1uLmFycmF5VHlwZSA9IHR5cGU7XHJcbiAgICBjb2x1bW4uY29sdW1uTm8gPSBjb2x1bW5Db3VudDtcclxuICAgIGNvbHVtbi5oZWFkZXIgPSBuZXcgWExUYWJsZUNvbHVtbkhlYWRlcihjb2x1bW5IZWFkZXIpO1xyXG5cclxuICAgIGNvbHVtbi5mb290ZXIgPSBuZXcgWExUYWJsZUNvbHVtbkZvb3RlcigpO1xyXG4gICAgY29sdW1uLmhvcml6b250YWxBbGlnbm1lbnQgPSBYTEhBbGlnbi54bEhBbGlnbk5vbmU7XHJcbiAgICBjb2x1bW4udmVydGljYWxBbGlnbm1lbnQgPSBYbFZBbGlnbi54bFZBbGlnbk5vbmU7XHJcbiAgICBjb2x1bW4uZm9ybWF0ID0gMDtcclxuICAgIGNvbHVtbi53aWR0aCA9IGdlbmlzbGlrO1xyXG5cclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlIFZhcmlhYmxlVHlwZS5JbnRlZ2VyOlxyXG4gICAgICAgIGNvbHVtbi5mb3JtYXQgPSBOdW1iZXJGb3JtYXRsYXIuTG9uZztcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgVmFyaWFibGVUeXBlLkxvbmdJbnQ6XHJcbiAgICAgICAgY29sdW1uLmZvcm1hdCA9IE51bWJlckZvcm1hdGxhci5Mb25nO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBWYXJpYWJsZVR5cGUuUmVhbDpcclxuICAgICAgICBjb2x1bW4uZm9ybWF0ID0gTnVtYmVyRm9ybWF0bGFyLlJlYWw7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFZhcmlhYmxlVHlwZS5EYXRlOlxyXG4gICAgICAgIGNvbHVtbi5mb3JtYXQgPSBOdW1iZXJGb3JtYXRsYXIuVGFyaWg7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGhlYWRlclNhdGlyQWRldCA9IHRoaXMuaGVhZGVyLnNhdGlyU2F5aXNpO1xyXG4gICAgY29uc3QgdGVtcFNpemUgPSBjb2x1bW5IZWFkZXIuc3BsaXQoJ1xccicpLmxlbmd0aDtcclxuICAgIGlmICh0ZW1wU2l6ZSA+IGhlYWRlclNhdGlyQWRldCkge1xyXG4gICAgICB0aGlzLmhlYWRlci5zYXRpclNheWlzaSA9IHRlbXBTaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29sdW1ucy5wdXNoKGNvbHVtbik7XHJcbiAgfVxyXG5cclxuICBjb2x1bW5Gb3JtYXQoZm9ybWF0OiBOdW1iZXJGb3JtYXRsYXIsIGNvbHVtbk5vPzogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBsZXQgX2NvbHVtbk5vID0gMDtcclxuICAgIGlmICh0eXBlb2YgY29sdW1uTm8gPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIF9jb2x1bW5ObyA9IHRoaXMuY29sdW1ucy5sZW5ndGg7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBfY29sdW1uTm8gPSBjb2x1bW5ObztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbHVtbnNbX2NvbHVtbk5vIC0gMV0uZm9ybWF0ID0gZm9ybWF0O1xyXG4gIH1cclxuXHJcbiAgcm93Rm9udENvbG9yQWRkKGNvbG9yOiBYTFJlbmssIHJvd05vPzogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBsZXQgX3Jvd05vID0gMDtcclxuICAgIGlmICh0eXBlb2Ygcm93Tm8gPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIF9yb3dObyA9IHRoaXMucm93cy5sZW5ndGg7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBfcm93Tm8gPSByb3dObztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJvd0ZvbnRDb2xvcnMucHVzaChuZXcgUm93Rm9udENvbG9yKGNvbG9yLCBfcm93Tm8pKTtcclxuICB9XHJcblxyXG4gIHJvd0ludGVyaW9yQ29sb3JBZGQoY29sb3I6IFhMUmVuaywgcm93Tm8/OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGxldCBfcm93Tm8gPSAwO1xyXG4gICAgaWYgKHR5cGVvZiByb3dObyA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgX3Jvd05vID0gdGhpcy5yb3dzLmxlbmd0aDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIF9yb3dObyA9IHJvd05vO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucm93SW50ZXJpb3JDb2xvcnMucHVzaChuZXcgUm93SW50ZXJpb3JDb2xvcihjb2xvciwgX3Jvd05vKSk7XHJcbiAgfVxyXG5cclxuICBzZXRDb2x1bW5Gb290ZXIodGl0bGU6IHN0cmluZywgY29sdW1uTm8/OiBudW1iZXIpIHtcclxuICAgIGxldCBfY29sdW1uTm8gPSAwO1xyXG4gICAgaWYgKHR5cGVvZiBjb2x1bW5ObyA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgX2NvbHVtbk5vID0gdGhpcy5jb2x1bW5zLmxlbmd0aDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIF9jb2x1bW5ObyA9IGNvbHVtbk5vO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb2x1bW5zW19jb2x1bW5ObyAtIDFdLnNldEZvb3Rlcih0aXRsZSk7XHJcblxyXG4gIH1cclxuXHJcbiAgc2V0Q29sdW1uRm9vdGVyRnVuY3Rpb24oZm9vdGVyRnVuY3Rpb246IFhMRnVuY3MsIGNvbHVtbk5vPzogbnVtYmVyKSB7XHJcbiAgICBsZXQgX2NvbHVtbk5vID0gMDtcclxuICAgIGlmICh0eXBlb2YgY29sdW1uTm8gPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIF9jb2x1bW5ObyA9IHRoaXMuY29sdW1ucy5sZW5ndGg7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBfY29sdW1uTm8gPSBjb2x1bW5ObztcclxuICAgIH1cclxuICAgIHRoaXMuY29sdW1uc1tfY29sdW1uTm8gLSAxXS5zZXRGb290ZXJGdW5jdGlvbihmb290ZXJGdW5jdGlvbik7XHJcblxyXG4gIH1cclxuXHJcbiAgaGlkZGVuUm93c0luaXQoKSB7XHJcbiAgICB0aGlzLmhpZGRlblJvd3MgPSBbXTtcclxuICB9XHJcblxyXG4gIHNvcnRJbml0KCkge1xyXG4gICAgdGhpcy5zb3J0ID0gW107XHJcbiAgfVxyXG5cclxuICByb3dzSW5pdCgpIHtcclxuICAgIHRoaXMucm93cyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgY29sdW1uRm9ybWF0c0luaXQoKSB7XHJcbiAgICB0aGlzLmNvbHVtbkZvbnROYW1lcyA9IFtdO1xyXG4gICAgdGhpcy5jb2x1bW5Gb250U2l6ZXMgPSBbXTtcclxuICAgIHRoaXMuY29sdW1uRm9udENvbG9ycyA9IFtdO1xyXG4gICAgdGhpcy5jb2x1bW5Gb250U3R5bGVzID0gW107XHJcblxyXG4gICAgdGhpcy5jb2x1bW5JbnRlcmlvckNvbG9ycyA9IFtdO1xyXG5cclxuICAgIHRoaXMuY29sdW1uSGVhZGVyRm9udE5hbWVzID0gW107XHJcbiAgICB0aGlzLmNvbHVtbkhlYWRlckZvbnRTaXplcyA9IFtdO1xyXG4gICAgdGhpcy5jb2x1bW5IZWFkZXJGb250Q29sb3JzID0gW107XHJcbiAgICB0aGlzLmNvbHVtbkhlYWRlckZvbnRTdHlsZXMgPSBbXTtcclxuXHJcbiAgICB0aGlzLmNvbHVtbkhlYWRlckludGVyaW9yQ29sb3JzID0gW107XHJcblxyXG4gICAgdGhpcy5jb2x1bW5Gb290ZXJGb250TmFtZXMgPSBbXTtcclxuICAgIHRoaXMuY29sdW1uRm9vdGVyRm9udFNpemVzID0gW107XHJcbiAgICB0aGlzLmNvbHVtbkZvb3RlckZvbnRDb2xvcnMgPSBbXTtcclxuICAgIHRoaXMuY29sdW1uRm9vdGVyRm9udFN0eWxlcyA9IFtdO1xyXG5cclxuICAgIHRoaXMuY29sdW1uRm9vdGVySW50ZXJpb3JDb2xvcnMgPSBbXTtcclxuICB9XHJcblxyXG4gIHJvd0Zvcm1hdHNJbml0KCkge1xyXG4gICAgdGhpcy5yb3dGb250TmFtZXMgPSBbXTtcclxuICAgIHRoaXMucm93Rm9udFNpemVzID0gW107XHJcbiAgICB0aGlzLnJvd0ZvbnRDb2xvcnMgPSBbXTtcclxuICAgIHRoaXMucm93Rm9udFN0eWxlcyA9IFtdO1xyXG5cclxuICAgIHRoaXMucm93SW50ZXJpb3JDb2xvcnMgPSBbXTtcclxuICAgIHRoaXMucm93Rm9ybWF0cyA9IFtdO1xyXG5cclxuICAgIHRoaXMucm93SG9yaXpvbnRhbEFsaWdubWVudHMgPSBbXTtcclxuICAgIHRoaXMucm93VmVydGljYWxBbGlnbm1lbnRzID0gW107XHJcbiAgfVxyXG5cclxuICBjZWxsRm9ybWF0c0luaXQoKSB7XHJcbiAgICB0aGlzLmNlbGxGb250TmFtZXMgPSBbXTtcclxuICAgIHRoaXMuY2VsbEZvbnRTaXplcyA9IFtdO1xyXG4gICAgdGhpcy5jZWxsRm9udENvbG9ycyA9IFtdO1xyXG4gICAgdGhpcy5jZWxsRm9udFN0eWxlcyA9IFtdO1xyXG5cclxuICAgIHRoaXMuY2VsbEludGVyaW9yQ29sb3JzID0gW107XHJcblxyXG4gICAgdGhpcy5jZWxsRm9ybWF0cyA9IFtdO1xyXG5cclxuICAgIHRoaXMuY2VsbEhvcml6b250YWxBbGlnbm1lbnRzID0gW107XHJcbiAgICB0aGlzLmNlbGxWZXJ0aWNhbEFsaWdubWVudHMgPSBbXTtcclxuICB9XHJcblxyXG4gIHJhbmdlRm9ybWF0c0luaXQoKSB7XHJcbiAgICB0aGlzLnJhbmdlRm9udE5hbWVzID0gW107XHJcbiAgICB0aGlzLnJhbmdlRm9udFNpemVzID0gW107XHJcbiAgICB0aGlzLnJhbmdlRm9udENvbG9ycyA9IFtdO1xyXG4gICAgdGhpcy5yYW5nZUZvbnRTdHlsZXMgPSBbXTtcclxuICAgIHRoaXMucmFuZ2VJbnRlcmlvckNvbG9ycyA9IFtdO1xyXG4gICAgdGhpcy5yYW5nZUZvcm1hdHMgPSBbXTtcclxuICAgIHRoaXMucmFuZ2VIb3Jpem9udGFsQWxpZ25tZW50cyA9IFtdO1xyXG4gICAgdGhpcy5yYW5nZVZlcnRpY2FsQWxpZ25tZW50cyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IF9zaGVldE5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNoZWV0TmFtZTtcclxuICB9XHJcbiAgc2V0IF9zaGVldE5hbWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5zaGVldE5hbWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgWExUYWJsZUNvbHVtbkZvb3RlciB7XHJcbiAgdGl0bGUgPSAnJztcclxuICBmb250ID0gbmV3IFhMRm9udCgpO1xyXG4gIGludGVyaW9yID0gbmV3IFhMSW50ZXJpb3IoKTtcclxuICBib3JkZXIgPSBuZXcgWExCb3JkZXIoKTtcclxuICBiYXNpbGFjYWsgPSBmYWxzZTtcclxuICBzYXRpclNheWlzaSA9IDE7XHJcbiAgaXNGdW5jdGlvbiA9IGZhbHNlO1xyXG4gIGhvcml6b250YWxBbGlnbm1lbnQ6IFhMSEFsaWduID0gWExIQWxpZ24ueGxIQWxpZ25Ob25lO1xyXG4gIHZlcnRpY2FsQWxpZ25tZW50OiBYbFZBbGlnbiA9IFhsVkFsaWduLnhsVkFsaWduTm9uZTtcclxuICBmdW5jdGlvbjogWExGdW5jcyA9IFhMRnVuY3MuTm9uZTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFhMVGFibGVDb2x1bW4ge1xyXG4gIHByb3BlcnR5ID0gJyc7XHJcbiAgYXJyYXlUeXBlOiBWYXJpYWJsZVR5cGUgPSAwO1xyXG4gIGNvbHVtbk5vID0gMDtcclxuICBoZWFkZXIgPSBuZXcgWExUYWJsZUNvbHVtbkhlYWRlcigpO1xyXG4gIGZvb3RlciA9IG5ldyBYTFRhYmxlQ29sdW1uRm9vdGVyKCk7XHJcbiAgaG9yaXpvbnRhbEFsaWdubWVudDogWExIQWxpZ24gPSBYTEhBbGlnbi54bEhBbGlnbk5vbmU7XHJcbiAgdmVydGljYWxBbGlnbm1lbnQ6IFhsVkFsaWduID0gWGxWQWxpZ24ueGxWQWxpZ25Ob25lO1xyXG4gIGZvcm1hdDogTnVtYmVyRm9ybWF0bGFyID0gMDtcclxuICB3aWR0aCA9IDA7XHJcblxyXG4gIHNldEZvb3RlckZ1bmN0aW9uKGZvb3RlckZ1bmN0aW9uOiBYTEZ1bmNzKSB7XHJcbiAgICB0aGlzLmZvb3Rlci5iYXNpbGFjYWsgPSB0cnVlO1xyXG4gICAgdGhpcy5mb290ZXIuZnVuY3Rpb24gPSBmb290ZXJGdW5jdGlvbjtcclxuICAgIHRoaXMuZm9vdGVyLmlzRnVuY3Rpb24gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9vdGVyKHRpdGxlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZm9vdGVyLmJhc2lsYWNhayA9IHRydWU7XHJcbiAgICB0aGlzLmZvb3Rlci50aXRsZSA9IHRpdGxlO1xyXG4gICAgdGhpcy5mb290ZXIuaXNGdW5jdGlvbiA9IGZhbHNlO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJvd0ZvbnRDb2xvciB7XHJcbiAgY29sb3I6IFhMUmVuaztcclxuICByb3dObzogbnVtYmVyO1xyXG4gIGNvbnN0cnVjdG9yKGNvbG9yOiBYTFJlbmssIHJvd05vOiBudW1iZXIpIHtcclxuICAgIHRoaXMuY29sb3IgPSBjb2xvcjtcclxuICAgIHRoaXMucm93Tm8gPSByb3dObztcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSb3dJbnRlcmlvckNvbG9yIHtcclxuICBjb2xvcjogWExSZW5rO1xyXG4gIHJvd05vOiBudW1iZXI7XHJcbiAgY29uc3RydWN0b3IoY29sb3I6IFhMUmVuaywgcm93Tm86IG51bWJlcikge1xyXG4gICAgdGhpcy5jb2xvciA9IGNvbG9yO1xyXG4gICAgdGhpcy5yb3dObyA9IHJvd05vO1xyXG4gIH1cclxufVxyXG4iXX0=