rubyfox-server 2.17.3.1 → 2.19.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rubyfox/server/data/config/admin/descriptors/config_room.txt +10 -1
  3. data/lib/rubyfox/server/data/config/admin/descriptors/config_server.txt +90 -20
  4. data/lib/rubyfox/server/data/config/admin/descriptors/config_zone.txt +9 -0
  5. data/lib/rubyfox/server/data/config/admin/descriptors/runtime_room.txt +11 -0
  6. data/lib/rubyfox/server/data/config/admin/descriptors/runtime_user.txt +3 -3
  7. data/lib/rubyfox/server/data/config/core.xml +4 -4
  8. data/lib/rubyfox/server/data/config/default.words.txt +11 -0
  9. data/lib/rubyfox/server/data/config/log4j.properties +1 -2
  10. data/lib/rubyfox/server/data/config/server.xml +1 -1
  11. data/lib/rubyfox/server/data/data/GeoLite2-Country.mmdb +0 -0
  12. data/lib/rubyfox/server/data/data/bannedusers/users.bin +0 -0
  13. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/bootstrap.jar +0 -0
  14. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/catalina-tasks.xml +39 -39
  15. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/catalina.sh +0 -0
  16. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/ciphers.sh +0 -0
  17. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/commons-daemon-native.tar.gz +0 -0
  18. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/commons-daemon.jar +0 -0
  19. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/configtest.sh +0 -0
  20. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/daemon.sh +0 -0
  21. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/digest.sh +0 -0
  22. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/makebase.sh +0 -0
  23. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/setclasspath.sh +0 -0
  24. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/shutdown.sh +0 -0
  25. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/startup.sh +0 -0
  26. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/tomcat-juli.jar +0 -0
  27. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/tomcat-native.tar.gz +0 -0
  28. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/tool-wrapper.sh +0 -0
  29. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/version.sh +0 -0
  30. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/Catalina/localhost/rewrite.config +1 -1
  31. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/catalina.policy +263 -264
  32. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/catalina.properties +209 -207
  33. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/context.xml +31 -31
  34. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/jaspic-providers.xml +23 -23
  35. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/jaspic-providers.xsd +52 -52
  36. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/keystore.jks +0 -0
  37. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/server.xml +177 -161
  38. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/tomcat-users.xml +18 -7
  39. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/tomcat-users.xsd +59 -59
  40. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/web.xml +4740 -4737
  41. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/annotations-api.jar +0 -0
  42. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/catalina-ant.jar +0 -0
  43. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/catalina-ha.jar +0 -0
  44. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/catalina-ssi.jar +0 -0
  45. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/catalina-storeconfig.jar +0 -0
  46. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/catalina-tribes.jar +0 -0
  47. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/catalina.jar +0 -0
  48. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/el-api.jar +0 -0
  49. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/jasper-el.jar +0 -0
  50. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/jasper.jar +0 -0
  51. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/jaspic-api.jar +0 -0
  52. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/jsp-api.jar +0 -0
  53. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/servlet-api.jar +0 -0
  54. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/sfs2x-ws-helper.jar +0 -0
  55. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-api.jar +0 -0
  56. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-coyote.jar +0 -0
  57. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-dbcp.jar +0 -0
  58. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-cs.jar +0 -0
  59. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-de.jar +0 -0
  60. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-es.jar +0 -0
  61. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-fr.jar +0 -0
  62. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-ja.jar +0 -0
  63. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-ko.jar +0 -0
  64. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-pt-BR.jar +0 -0
  65. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-ru.jar +0 -0
  66. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-zh-CN.jar +0 -0
  67. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-jdbc.jar +0 -0
  68. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-jni.jar +0 -0
  69. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-util-scan.jar +0 -0
  70. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-util.jar +0 -0
  71. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-websocket.jar +0 -0
  72. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/websocket-api.jar +0 -0
  73. data/lib/rubyfox/server/data/lib/javax.activation-1.2.0.jar +0 -0
  74. data/lib/rubyfox/server/data/lib/javax.mail.jar +0 -0
  75. data/lib/rubyfox/server/data/lib/js/JSApi.js +2 -1
  76. data/lib/rubyfox/server/data/lib/js/LibApi.js +181 -48
  77. data/lib/rubyfox/server/data/lib/sfs2x-admin.jar +0 -0
  78. data/lib/rubyfox/server/data/lib/sfs2x-cluster.jar +0 -0
  79. data/lib/rubyfox/server/data/lib/sfs2x-core.jar +0 -0
  80. data/lib/rubyfox/server/data/lib/sfs2x.jar +0 -0
  81. data/lib/rubyfox/server/data/sfs2x-service +26 -30
  82. data/lib/rubyfox/server/data/www/BlueBox.war +0 -0
  83. data/lib/rubyfox/server/data/www/HelloServlet/WEB-INF/web.xml +1 -3
  84. data/lib/rubyfox/server/data/www/ROOT/_css_/default.css +14 -6
  85. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/style.css +44 -2
  86. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/application.bundle.js +98 -61
  87. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/endors~mod-0~mod-1~mod-11~mod-12~mod-17~mod-6~mod-7~mod-8~mod-9.bundle.js +17357 -0
  88. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-0.bundle.js +4 -4
  89. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-1.bundle.js +3 -3
  90. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-10.bundle.js +101 -66
  91. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-11.bundle.js +544 -8
  92. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-12.bundle.js +915 -1480
  93. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-12~module-15~module-16~module-4.bundle.js +2665 -0
  94. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-13.bundle.js +606 -3093
  95. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-13~module-16~module-17~module-4.bundle.js +2665 -0
  96. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-14.bundle.js +764 -0
  97. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-15.bundle.js +71 -0
  98. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-16.bundle.js +1787 -0
  99. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-17.bundle.js +3383 -0
  100. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-4.bundle.js +121 -1009
  101. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-5.bundle.js +1214 -1744
  102. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-6.bundle.js +398 -666
  103. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-7.bundle.js +717 -192
  104. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-8.bundle.js +2117 -665
  105. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-9.bundle.js +613 -690
  106. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/vendors~mod-0~mod-1~mod-10~mod-11~mod-16~mod-5~mod-6~mod-7~mod-8.bundle.js +17357 -0
  107. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/vendors~mod-0~mod-1~mod-11~mod-12~mod-17~mod-5~mod-6~mod-7~mod-8~mod-9.bundle.js +17357 -0
  108. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/{vendors~module-0~module-1~module-13~module-4~module-5~module-7~module-8.bundle.js → vendors~mod-0~mod-1~mod-11~mod-12~mod-17~mod-5~mod-7~mod-8~mod-9.bundle.js} +2 -2
  109. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/vendors~module-12.bundle.js +807 -0
  110. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/vendors~module-13.bundle.js +807 -0
  111. data/lib/rubyfox/server/data/www/ROOT/admin/modules/cluster-configurator.html +32 -0
  112. data/lib/rubyfox/server/data/www/ROOT/admin/modules/cluster-monitor.html +185 -0
  113. data/lib/rubyfox/server/data/www/ROOT/admin/modules/cluster-updater.html +47 -0
  114. data/lib/rubyfox/server/data/www/ROOT/admin/modules/extension-deployer.html +84 -0
  115. data/lib/rubyfox/server/data/www/ROOT/admin/modules/zone-monitor.html +15 -8
  116. data/lib/rubyfox/server/data/www/ROOT/index.html +13 -23
  117. data/lib/rubyfox/server/data/www/host-manager/META-INF/context.xml +2 -2
  118. data/lib/rubyfox/server/data/www/host-manager/WEB-INF/jsp/404.jsp +2 -2
  119. data/lib/rubyfox/server/data/www/host-manager/{manager.xml → WEB-INF/manager.xml} +5 -1
  120. data/lib/rubyfox/server/data/www/host-manager/WEB-INF/web.xml +17 -0
  121. data/lib/rubyfox/server/data/www/host-manager/css/manager.css +141 -0
  122. data/lib/rubyfox/server/data/www/host-manager/images/tomcat.svg +967 -0
  123. data/lib/rubyfox/server/data/www/manager/META-INF/context.xml +2 -0
  124. data/lib/rubyfox/server/data/www/manager/WEB-INF/jsp/connectorCerts.jsp +1 -1
  125. data/lib/rubyfox/server/data/www/manager/WEB-INF/jsp/connectorCiphers.jsp +1 -1
  126. data/lib/rubyfox/server/data/www/manager/WEB-INF/jsp/connectorTrustedCerts.jsp +1 -1
  127. data/lib/rubyfox/server/data/www/manager/WEB-INF/jsp/sessionDetail.jsp +3 -3
  128. data/lib/rubyfox/server/data/www/manager/WEB-INF/jsp/sessionsList.jsp +1 -1
  129. data/lib/rubyfox/server/data/www/manager/WEB-INF/web.xml +17 -0
  130. data/lib/rubyfox/server/data/www/manager/css/manager.css +141 -0
  131. data/lib/rubyfox/server/data/www/manager/images/tomcat.svg +967 -0
  132. data/lib/rubyfox/server/data/www/manager/xform.xsl +74 -59
  133. data/lib/rubyfox/server/version.rb +1 -1
  134. metadata +30 -31
  135. data/lib/rubyfox/server/data/config/admin/icons/Analytics.png +0 -0
  136. data/lib/rubyfox/server/data/config/admin/icons/BanManager.png +0 -0
  137. data/lib/rubyfox/server/data/config/admin/icons/BlueBoxMonitor.png +0 -0
  138. data/lib/rubyfox/server/data/config/admin/icons/Console.png +0 -0
  139. data/lib/rubyfox/server/data/config/admin/icons/Dashboard.png +0 -0
  140. data/lib/rubyfox/server/data/config/admin/icons/ExtensionManager.png +0 -0
  141. data/lib/rubyfox/server/data/config/admin/icons/LicenseManager.png +0 -0
  142. data/lib/rubyfox/server/data/config/admin/icons/LogViewer.png +0 -0
  143. data/lib/rubyfox/server/data/config/admin/icons/ServerConfigurator.png +0 -0
  144. data/lib/rubyfox/server/data/config/admin/icons/ServletManager.png +0 -0
  145. data/lib/rubyfox/server/data/config/admin/icons/ZoneConfigurator.png +0 -0
  146. data/lib/rubyfox/server/data/config/admin/icons/ZoneMonitor.png +0 -0
  147. data/lib/rubyfox/server/data/lib/BlueBox.war +0 -0
  148. data/lib/rubyfox/server/data/lib/apache-tomcat/LICENSE +0 -1061
  149. data/lib/rubyfox/server/data/lib/apache-tomcat/NOTICE +0 -68
  150. data/lib/rubyfox/server/data/lib/apache-tomcat/README.md +0 -81
  151. data/lib/rubyfox/server/data/lib/apache-tomcat/RELEASE-NOTES +0 -174
  152. data/lib/rubyfox/server/data/lib/imap.jar +0 -0
  153. data/lib/rubyfox/server/data/lib/mailapi.jar +0 -0
  154. data/lib/rubyfox/server/data/lib/pop3.jar +0 -0
  155. data/lib/rubyfox/server/data/lib/smtp.jar +0 -0
  156. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-12~module-13~module-9.bundle.js +0 -2634
  157. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/vendors~module-9.bundle.js +0 -807
  158. data/lib/rubyfox/server/data/www/host-manager/images/tomcat.gif +0 -0
  159. data/lib/rubyfox/server/data/www/manager/images/tomcat.gif +0 -0
  160. /data/lib/rubyfox/server/data/data/buddylists/{BasicExamples/.keep → .keep} +0 -0
@@ -1,24 +1,331 @@
1
1
  /*! (c) gotoAndPlay | All rights reserved */
2
2
  (window["webpackJsonpapplication"] = window["webpackJsonpapplication"] || []).push([["module-11"],{
3
3
 
4
- /***/ "./src/modules/template.js":
5
- /*!*********************************!*\
6
- !*** ./src/modules/template.js ***!
7
- \*********************************/
4
+ /***/ "./node_modules/moment/locale sync recursive ^\\.\\/.*$":
5
+ /*!**************************************************!*\
6
+ !*** ./node_modules/moment/locale sync ^\.\/.*$ ***!
7
+ \**************************************************/
8
+ /*! no static exports found */
9
+ /***/ (function(module, exports, __webpack_require__) {
10
+
11
+ var map = {
12
+ "./af": "./node_modules/moment/locale/af.js",
13
+ "./af.js": "./node_modules/moment/locale/af.js",
14
+ "./ar": "./node_modules/moment/locale/ar.js",
15
+ "./ar-dz": "./node_modules/moment/locale/ar-dz.js",
16
+ "./ar-dz.js": "./node_modules/moment/locale/ar-dz.js",
17
+ "./ar-kw": "./node_modules/moment/locale/ar-kw.js",
18
+ "./ar-kw.js": "./node_modules/moment/locale/ar-kw.js",
19
+ "./ar-ly": "./node_modules/moment/locale/ar-ly.js",
20
+ "./ar-ly.js": "./node_modules/moment/locale/ar-ly.js",
21
+ "./ar-ma": "./node_modules/moment/locale/ar-ma.js",
22
+ "./ar-ma.js": "./node_modules/moment/locale/ar-ma.js",
23
+ "./ar-sa": "./node_modules/moment/locale/ar-sa.js",
24
+ "./ar-sa.js": "./node_modules/moment/locale/ar-sa.js",
25
+ "./ar-tn": "./node_modules/moment/locale/ar-tn.js",
26
+ "./ar-tn.js": "./node_modules/moment/locale/ar-tn.js",
27
+ "./ar.js": "./node_modules/moment/locale/ar.js",
28
+ "./az": "./node_modules/moment/locale/az.js",
29
+ "./az.js": "./node_modules/moment/locale/az.js",
30
+ "./be": "./node_modules/moment/locale/be.js",
31
+ "./be.js": "./node_modules/moment/locale/be.js",
32
+ "./bg": "./node_modules/moment/locale/bg.js",
33
+ "./bg.js": "./node_modules/moment/locale/bg.js",
34
+ "./bm": "./node_modules/moment/locale/bm.js",
35
+ "./bm.js": "./node_modules/moment/locale/bm.js",
36
+ "./bn": "./node_modules/moment/locale/bn.js",
37
+ "./bn.js": "./node_modules/moment/locale/bn.js",
38
+ "./bo": "./node_modules/moment/locale/bo.js",
39
+ "./bo.js": "./node_modules/moment/locale/bo.js",
40
+ "./br": "./node_modules/moment/locale/br.js",
41
+ "./br.js": "./node_modules/moment/locale/br.js",
42
+ "./bs": "./node_modules/moment/locale/bs.js",
43
+ "./bs.js": "./node_modules/moment/locale/bs.js",
44
+ "./ca": "./node_modules/moment/locale/ca.js",
45
+ "./ca.js": "./node_modules/moment/locale/ca.js",
46
+ "./cs": "./node_modules/moment/locale/cs.js",
47
+ "./cs.js": "./node_modules/moment/locale/cs.js",
48
+ "./cv": "./node_modules/moment/locale/cv.js",
49
+ "./cv.js": "./node_modules/moment/locale/cv.js",
50
+ "./cy": "./node_modules/moment/locale/cy.js",
51
+ "./cy.js": "./node_modules/moment/locale/cy.js",
52
+ "./da": "./node_modules/moment/locale/da.js",
53
+ "./da.js": "./node_modules/moment/locale/da.js",
54
+ "./de": "./node_modules/moment/locale/de.js",
55
+ "./de-at": "./node_modules/moment/locale/de-at.js",
56
+ "./de-at.js": "./node_modules/moment/locale/de-at.js",
57
+ "./de-ch": "./node_modules/moment/locale/de-ch.js",
58
+ "./de-ch.js": "./node_modules/moment/locale/de-ch.js",
59
+ "./de.js": "./node_modules/moment/locale/de.js",
60
+ "./dv": "./node_modules/moment/locale/dv.js",
61
+ "./dv.js": "./node_modules/moment/locale/dv.js",
62
+ "./el": "./node_modules/moment/locale/el.js",
63
+ "./el.js": "./node_modules/moment/locale/el.js",
64
+ "./en-SG": "./node_modules/moment/locale/en-SG.js",
65
+ "./en-SG.js": "./node_modules/moment/locale/en-SG.js",
66
+ "./en-au": "./node_modules/moment/locale/en-au.js",
67
+ "./en-au.js": "./node_modules/moment/locale/en-au.js",
68
+ "./en-ca": "./node_modules/moment/locale/en-ca.js",
69
+ "./en-ca.js": "./node_modules/moment/locale/en-ca.js",
70
+ "./en-gb": "./node_modules/moment/locale/en-gb.js",
71
+ "./en-gb.js": "./node_modules/moment/locale/en-gb.js",
72
+ "./en-ie": "./node_modules/moment/locale/en-ie.js",
73
+ "./en-ie.js": "./node_modules/moment/locale/en-ie.js",
74
+ "./en-il": "./node_modules/moment/locale/en-il.js",
75
+ "./en-il.js": "./node_modules/moment/locale/en-il.js",
76
+ "./en-nz": "./node_modules/moment/locale/en-nz.js",
77
+ "./en-nz.js": "./node_modules/moment/locale/en-nz.js",
78
+ "./eo": "./node_modules/moment/locale/eo.js",
79
+ "./eo.js": "./node_modules/moment/locale/eo.js",
80
+ "./es": "./node_modules/moment/locale/es.js",
81
+ "./es-do": "./node_modules/moment/locale/es-do.js",
82
+ "./es-do.js": "./node_modules/moment/locale/es-do.js",
83
+ "./es-us": "./node_modules/moment/locale/es-us.js",
84
+ "./es-us.js": "./node_modules/moment/locale/es-us.js",
85
+ "./es.js": "./node_modules/moment/locale/es.js",
86
+ "./et": "./node_modules/moment/locale/et.js",
87
+ "./et.js": "./node_modules/moment/locale/et.js",
88
+ "./eu": "./node_modules/moment/locale/eu.js",
89
+ "./eu.js": "./node_modules/moment/locale/eu.js",
90
+ "./fa": "./node_modules/moment/locale/fa.js",
91
+ "./fa.js": "./node_modules/moment/locale/fa.js",
92
+ "./fi": "./node_modules/moment/locale/fi.js",
93
+ "./fi.js": "./node_modules/moment/locale/fi.js",
94
+ "./fo": "./node_modules/moment/locale/fo.js",
95
+ "./fo.js": "./node_modules/moment/locale/fo.js",
96
+ "./fr": "./node_modules/moment/locale/fr.js",
97
+ "./fr-ca": "./node_modules/moment/locale/fr-ca.js",
98
+ "./fr-ca.js": "./node_modules/moment/locale/fr-ca.js",
99
+ "./fr-ch": "./node_modules/moment/locale/fr-ch.js",
100
+ "./fr-ch.js": "./node_modules/moment/locale/fr-ch.js",
101
+ "./fr.js": "./node_modules/moment/locale/fr.js",
102
+ "./fy": "./node_modules/moment/locale/fy.js",
103
+ "./fy.js": "./node_modules/moment/locale/fy.js",
104
+ "./ga": "./node_modules/moment/locale/ga.js",
105
+ "./ga.js": "./node_modules/moment/locale/ga.js",
106
+ "./gd": "./node_modules/moment/locale/gd.js",
107
+ "./gd.js": "./node_modules/moment/locale/gd.js",
108
+ "./gl": "./node_modules/moment/locale/gl.js",
109
+ "./gl.js": "./node_modules/moment/locale/gl.js",
110
+ "./gom-latn": "./node_modules/moment/locale/gom-latn.js",
111
+ "./gom-latn.js": "./node_modules/moment/locale/gom-latn.js",
112
+ "./gu": "./node_modules/moment/locale/gu.js",
113
+ "./gu.js": "./node_modules/moment/locale/gu.js",
114
+ "./he": "./node_modules/moment/locale/he.js",
115
+ "./he.js": "./node_modules/moment/locale/he.js",
116
+ "./hi": "./node_modules/moment/locale/hi.js",
117
+ "./hi.js": "./node_modules/moment/locale/hi.js",
118
+ "./hr": "./node_modules/moment/locale/hr.js",
119
+ "./hr.js": "./node_modules/moment/locale/hr.js",
120
+ "./hu": "./node_modules/moment/locale/hu.js",
121
+ "./hu.js": "./node_modules/moment/locale/hu.js",
122
+ "./hy-am": "./node_modules/moment/locale/hy-am.js",
123
+ "./hy-am.js": "./node_modules/moment/locale/hy-am.js",
124
+ "./id": "./node_modules/moment/locale/id.js",
125
+ "./id.js": "./node_modules/moment/locale/id.js",
126
+ "./is": "./node_modules/moment/locale/is.js",
127
+ "./is.js": "./node_modules/moment/locale/is.js",
128
+ "./it": "./node_modules/moment/locale/it.js",
129
+ "./it-ch": "./node_modules/moment/locale/it-ch.js",
130
+ "./it-ch.js": "./node_modules/moment/locale/it-ch.js",
131
+ "./it.js": "./node_modules/moment/locale/it.js",
132
+ "./ja": "./node_modules/moment/locale/ja.js",
133
+ "./ja.js": "./node_modules/moment/locale/ja.js",
134
+ "./jv": "./node_modules/moment/locale/jv.js",
135
+ "./jv.js": "./node_modules/moment/locale/jv.js",
136
+ "./ka": "./node_modules/moment/locale/ka.js",
137
+ "./ka.js": "./node_modules/moment/locale/ka.js",
138
+ "./kk": "./node_modules/moment/locale/kk.js",
139
+ "./kk.js": "./node_modules/moment/locale/kk.js",
140
+ "./km": "./node_modules/moment/locale/km.js",
141
+ "./km.js": "./node_modules/moment/locale/km.js",
142
+ "./kn": "./node_modules/moment/locale/kn.js",
143
+ "./kn.js": "./node_modules/moment/locale/kn.js",
144
+ "./ko": "./node_modules/moment/locale/ko.js",
145
+ "./ko.js": "./node_modules/moment/locale/ko.js",
146
+ "./ku": "./node_modules/moment/locale/ku.js",
147
+ "./ku.js": "./node_modules/moment/locale/ku.js",
148
+ "./ky": "./node_modules/moment/locale/ky.js",
149
+ "./ky.js": "./node_modules/moment/locale/ky.js",
150
+ "./lb": "./node_modules/moment/locale/lb.js",
151
+ "./lb.js": "./node_modules/moment/locale/lb.js",
152
+ "./lo": "./node_modules/moment/locale/lo.js",
153
+ "./lo.js": "./node_modules/moment/locale/lo.js",
154
+ "./lt": "./node_modules/moment/locale/lt.js",
155
+ "./lt.js": "./node_modules/moment/locale/lt.js",
156
+ "./lv": "./node_modules/moment/locale/lv.js",
157
+ "./lv.js": "./node_modules/moment/locale/lv.js",
158
+ "./me": "./node_modules/moment/locale/me.js",
159
+ "./me.js": "./node_modules/moment/locale/me.js",
160
+ "./mi": "./node_modules/moment/locale/mi.js",
161
+ "./mi.js": "./node_modules/moment/locale/mi.js",
162
+ "./mk": "./node_modules/moment/locale/mk.js",
163
+ "./mk.js": "./node_modules/moment/locale/mk.js",
164
+ "./ml": "./node_modules/moment/locale/ml.js",
165
+ "./ml.js": "./node_modules/moment/locale/ml.js",
166
+ "./mn": "./node_modules/moment/locale/mn.js",
167
+ "./mn.js": "./node_modules/moment/locale/mn.js",
168
+ "./mr": "./node_modules/moment/locale/mr.js",
169
+ "./mr.js": "./node_modules/moment/locale/mr.js",
170
+ "./ms": "./node_modules/moment/locale/ms.js",
171
+ "./ms-my": "./node_modules/moment/locale/ms-my.js",
172
+ "./ms-my.js": "./node_modules/moment/locale/ms-my.js",
173
+ "./ms.js": "./node_modules/moment/locale/ms.js",
174
+ "./mt": "./node_modules/moment/locale/mt.js",
175
+ "./mt.js": "./node_modules/moment/locale/mt.js",
176
+ "./my": "./node_modules/moment/locale/my.js",
177
+ "./my.js": "./node_modules/moment/locale/my.js",
178
+ "./nb": "./node_modules/moment/locale/nb.js",
179
+ "./nb.js": "./node_modules/moment/locale/nb.js",
180
+ "./ne": "./node_modules/moment/locale/ne.js",
181
+ "./ne.js": "./node_modules/moment/locale/ne.js",
182
+ "./nl": "./node_modules/moment/locale/nl.js",
183
+ "./nl-be": "./node_modules/moment/locale/nl-be.js",
184
+ "./nl-be.js": "./node_modules/moment/locale/nl-be.js",
185
+ "./nl.js": "./node_modules/moment/locale/nl.js",
186
+ "./nn": "./node_modules/moment/locale/nn.js",
187
+ "./nn.js": "./node_modules/moment/locale/nn.js",
188
+ "./pa-in": "./node_modules/moment/locale/pa-in.js",
189
+ "./pa-in.js": "./node_modules/moment/locale/pa-in.js",
190
+ "./pl": "./node_modules/moment/locale/pl.js",
191
+ "./pl.js": "./node_modules/moment/locale/pl.js",
192
+ "./pt": "./node_modules/moment/locale/pt.js",
193
+ "./pt-br": "./node_modules/moment/locale/pt-br.js",
194
+ "./pt-br.js": "./node_modules/moment/locale/pt-br.js",
195
+ "./pt.js": "./node_modules/moment/locale/pt.js",
196
+ "./ro": "./node_modules/moment/locale/ro.js",
197
+ "./ro.js": "./node_modules/moment/locale/ro.js",
198
+ "./ru": "./node_modules/moment/locale/ru.js",
199
+ "./ru.js": "./node_modules/moment/locale/ru.js",
200
+ "./sd": "./node_modules/moment/locale/sd.js",
201
+ "./sd.js": "./node_modules/moment/locale/sd.js",
202
+ "./se": "./node_modules/moment/locale/se.js",
203
+ "./se.js": "./node_modules/moment/locale/se.js",
204
+ "./si": "./node_modules/moment/locale/si.js",
205
+ "./si.js": "./node_modules/moment/locale/si.js",
206
+ "./sk": "./node_modules/moment/locale/sk.js",
207
+ "./sk.js": "./node_modules/moment/locale/sk.js",
208
+ "./sl": "./node_modules/moment/locale/sl.js",
209
+ "./sl.js": "./node_modules/moment/locale/sl.js",
210
+ "./sq": "./node_modules/moment/locale/sq.js",
211
+ "./sq.js": "./node_modules/moment/locale/sq.js",
212
+ "./sr": "./node_modules/moment/locale/sr.js",
213
+ "./sr-cyrl": "./node_modules/moment/locale/sr-cyrl.js",
214
+ "./sr-cyrl.js": "./node_modules/moment/locale/sr-cyrl.js",
215
+ "./sr.js": "./node_modules/moment/locale/sr.js",
216
+ "./ss": "./node_modules/moment/locale/ss.js",
217
+ "./ss.js": "./node_modules/moment/locale/ss.js",
218
+ "./sv": "./node_modules/moment/locale/sv.js",
219
+ "./sv.js": "./node_modules/moment/locale/sv.js",
220
+ "./sw": "./node_modules/moment/locale/sw.js",
221
+ "./sw.js": "./node_modules/moment/locale/sw.js",
222
+ "./ta": "./node_modules/moment/locale/ta.js",
223
+ "./ta.js": "./node_modules/moment/locale/ta.js",
224
+ "./te": "./node_modules/moment/locale/te.js",
225
+ "./te.js": "./node_modules/moment/locale/te.js",
226
+ "./tet": "./node_modules/moment/locale/tet.js",
227
+ "./tet.js": "./node_modules/moment/locale/tet.js",
228
+ "./tg": "./node_modules/moment/locale/tg.js",
229
+ "./tg.js": "./node_modules/moment/locale/tg.js",
230
+ "./th": "./node_modules/moment/locale/th.js",
231
+ "./th.js": "./node_modules/moment/locale/th.js",
232
+ "./tl-ph": "./node_modules/moment/locale/tl-ph.js",
233
+ "./tl-ph.js": "./node_modules/moment/locale/tl-ph.js",
234
+ "./tlh": "./node_modules/moment/locale/tlh.js",
235
+ "./tlh.js": "./node_modules/moment/locale/tlh.js",
236
+ "./tr": "./node_modules/moment/locale/tr.js",
237
+ "./tr.js": "./node_modules/moment/locale/tr.js",
238
+ "./tzl": "./node_modules/moment/locale/tzl.js",
239
+ "./tzl.js": "./node_modules/moment/locale/tzl.js",
240
+ "./tzm": "./node_modules/moment/locale/tzm.js",
241
+ "./tzm-latn": "./node_modules/moment/locale/tzm-latn.js",
242
+ "./tzm-latn.js": "./node_modules/moment/locale/tzm-latn.js",
243
+ "./tzm.js": "./node_modules/moment/locale/tzm.js",
244
+ "./ug-cn": "./node_modules/moment/locale/ug-cn.js",
245
+ "./ug-cn.js": "./node_modules/moment/locale/ug-cn.js",
246
+ "./uk": "./node_modules/moment/locale/uk.js",
247
+ "./uk.js": "./node_modules/moment/locale/uk.js",
248
+ "./ur": "./node_modules/moment/locale/ur.js",
249
+ "./ur.js": "./node_modules/moment/locale/ur.js",
250
+ "./uz": "./node_modules/moment/locale/uz.js",
251
+ "./uz-latn": "./node_modules/moment/locale/uz-latn.js",
252
+ "./uz-latn.js": "./node_modules/moment/locale/uz-latn.js",
253
+ "./uz.js": "./node_modules/moment/locale/uz.js",
254
+ "./vi": "./node_modules/moment/locale/vi.js",
255
+ "./vi.js": "./node_modules/moment/locale/vi.js",
256
+ "./x-pseudo": "./node_modules/moment/locale/x-pseudo.js",
257
+ "./x-pseudo.js": "./node_modules/moment/locale/x-pseudo.js",
258
+ "./yo": "./node_modules/moment/locale/yo.js",
259
+ "./yo.js": "./node_modules/moment/locale/yo.js",
260
+ "./zh-cn": "./node_modules/moment/locale/zh-cn.js",
261
+ "./zh-cn.js": "./node_modules/moment/locale/zh-cn.js",
262
+ "./zh-hk": "./node_modules/moment/locale/zh-hk.js",
263
+ "./zh-hk.js": "./node_modules/moment/locale/zh-hk.js",
264
+ "./zh-tw": "./node_modules/moment/locale/zh-tw.js",
265
+ "./zh-tw.js": "./node_modules/moment/locale/zh-tw.js"
266
+ };
267
+
268
+
269
+ function webpackContext(req) {
270
+ var id = webpackContextResolve(req);
271
+ return __webpack_require__(id);
272
+ }
273
+ function webpackContextResolve(req) {
274
+ if(!__webpack_require__.o(map, req)) {
275
+ var e = new Error("Cannot find module '" + req + "'");
276
+ e.code = 'MODULE_NOT_FOUND';
277
+ throw e;
278
+ }
279
+ return map[req];
280
+ }
281
+ webpackContext.keys = function webpackContextKeys() {
282
+ return Object.keys(map);
283
+ };
284
+ webpackContext.resolve = webpackContextResolve;
285
+ module.exports = webpackContext;
286
+ webpackContext.id = "./node_modules/moment/locale sync recursive ^\\.\\/.*$";
287
+
288
+ /***/ }),
289
+
290
+ /***/ "./src/modules/license-manager.js":
291
+ /*!****************************************!*\
292
+ !*** ./src/modules/license-manager.js ***!
293
+ \****************************************/
8
294
  /*! exports provided: default */
9
295
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10
296
 
11
297
  "use strict";
12
298
  __webpack_require__.r(__webpack_exports__);
13
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return Template; });
299
+ /* WEBPACK VAR INJECTION */(function($) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return LicenseManager; });
14
300
  /* harmony import */ var _base_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-module */ "./src/modules/base-module.js");
301
+ /* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! moment */ "./node_modules/moment/moment.js");
302
+ /* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_1__);
15
303
 
16
304
 
17
- class Template extends _base_module__WEBPACK_IMPORTED_MODULE_0__["BaseModule"]
305
+
306
+ class LicenseManager extends _base_module__WEBPACK_IMPORTED_MODULE_0__["BaseModule"]
18
307
  {
19
308
  constructor()
20
309
  {
21
- super('template');
310
+ super('licenseMan');
311
+
312
+ // Outgoing requests
313
+ this.REQ_GET_DATA = 'getData';
314
+ this.REQ_SAVE_DATA = 'saveData';
315
+ this.REQ_TEST_CONNECTION = 'testConn';
316
+ this.REQ_REFRESH_LICENSE = 'refreshLic';
317
+
318
+ // Incoming responses
319
+ this.RESP_DATA = 'data';
320
+ this.RESP_DATA_SAVED = 'dataSaved';
321
+ this.RESP_TEST_RESULT = 'testRes';
322
+
323
+ this.COMMUNICATION_CHECK_OK = 1;
324
+ this.COMMUNICATION_CHECK_KO_LICENSE_INVALID = 2;
325
+
326
+ this._code = '';
327
+ this._emails = '';
328
+ this._alert = false;
22
329
  }
23
330
 
24
331
  //------------------------------------
@@ -32,30 +339,258 @@ class Template extends _base_module__WEBPACK_IMPORTED_MODULE_0__["BaseModule"]
32
339
  // Call super method
33
340
  super.initialize(idData, shellController);
34
341
 
342
+ // Initialize kendo switch
343
+ kendo.init($('#lcm-alertCb'));
344
+
345
+ // Initialize help tooltips
346
+ $(this).kendoTooltip({
347
+ filter: 'i[title].help',
348
+ position: 'right',
349
+ content: function(e) {
350
+ return `<div class="help-tooltip">${e.target.data('title')}</div>`;
351
+ }
352
+ });
353
+
354
+ // Add button event listeners
355
+ $('#lcm-refreshBt').on('click', $.proxy(this._onRefreshClick, this));
356
+ $('#lcm-submitBt').on('click', $.proxy(this._onSubmitClick, this));
357
+ $('#lcm-testBt').on('click', $.proxy(this._onTestClick, this));
358
+
359
+ // Disable interface
360
+ this._enableInterface(false);
361
+
362
+ // Request license data to server instance
363
+ this.sendExtensionRequest(this.REQ_GET_DATA);
35
364
  }
36
365
 
37
366
  destroy()
38
367
  {
39
368
  // Call super method
40
369
  super.destroy();
370
+
371
+ // Remove button event listeners
372
+ $('#lcm-refreshBt').off('click');
373
+ $('#lcm-submitBt').off('click');
374
+ $('#lcm-testBt').off('click');
41
375
  }
42
376
 
43
377
  onExtensionCommand(command, data)
44
378
  {
379
+ // License configuration data received
380
+ if (command == this.RESP_DATA)
381
+ {
382
+ // Configuration
383
+ if (data.containsKey('code'))
384
+ this._code = data.getUtfString('code');
385
+
386
+ if (data.containsKey('emails'))
387
+ this._emails = data.getUtfString('emails');
388
+
389
+ if (data.containsKey('alert'))
390
+ this._alert = data.getBool('alert');
391
+
392
+ // Display currently running license details
393
+ if (data.containsKey('details'))
394
+ {
395
+ let licDetails = data.getUtfStringArray('details');
396
+
397
+ $('#lcm-currType').text(licDetails[0]);
398
+ $('#lcm-currMaxUsers').text(licDetails[1]);
399
+ $('#lcm-currOptions').text(licDetails[2].split(',').join(' | '));
400
+ $('#lcm-currExpire').text(licDetails[3]);
401
+ $('#lcm-currPrivate').text(licDetails[4]);
402
+
403
+ if (licDetails[2] != '')
404
+ $('#lcm-currOptions').parent().show();
405
+ else
406
+ $('#lcm-currOptions').parent().hide();
407
+
408
+ if (licDetails[3] != '')
409
+ $('#lcm-currExpire').parent().show();
410
+ else
411
+ $('#lcm-currExpire').parent().hide();
412
+
413
+ if (licDetails[4] != '')
414
+ $('#lcm-currPrivate').parent().show();
415
+ else
416
+ $('#lcm-currPrivate').parent().hide();
417
+ }
418
+
419
+ // Display warning is sent by the server
420
+ // This can happen if a license refresh request was sent and this couldn't be completed or caused the license to revert to CE
421
+ if (data.containsKey('warning'))
422
+ this.shellCtrl.showSimpleAlert(data.getUtfString('warning'));
423
+
424
+ this._enableInterface(true);
425
+ }
426
+
427
+ // License configuration update confirmation
428
+ else if (command == this.RESP_DATA_SAVED)
429
+ {
430
+ this._code = data.getUtfString('code');
431
+ this._emails = data.getUtfString('emails');
432
+ this._alert = data.getBool('alert');
433
+
434
+ // Enable interface
435
+ this._enableInterface(true);
436
+
437
+ // Log message
438
+ const updater = data.getUtfString('user');
439
+
440
+ if (updater == this.smartFox.mySelf.name)
441
+ {
442
+ // Display notification
443
+ this.shellCtrl.showNotification(`Configuration updated`, `License details saved successfully`);
45
444
 
445
+ // Show screen
446
+ this._switchView('lcm-panelSaved');
447
+ }
448
+ else
449
+ {
450
+ // Display notification
451
+ this.shellCtrl.showNotification(`Configuration updated`, `Administrator ${updater} has modified the license details`);
452
+ }
453
+ }
454
+
455
+ // Response to License Server connection test received
456
+ else if (command == this.RESP_TEST_RESULT)
457
+ {
458
+ this._enableInterface(true);
459
+
460
+ if (data.isNull('lsData'))
461
+ {
462
+ // Show screen
463
+ this._switchView('lcm-panelTestKO');
464
+ }
465
+ else
466
+ {
467
+ let lsData = data.getSFSObject('lsData');
468
+
469
+ if (lsData.getInt('id') == this.COMMUNICATION_CHECK_KO_LICENSE_INVALID)
470
+ {
471
+ // Show screen
472
+ this._switchView('lcm-panelTestOK-invalid');
473
+ }
474
+ else if (lsData.getInt('id') == this.COMMUNICATION_CHECK_OK)
475
+ {
476
+ // Show screen
477
+ this._switchView('lcm-panelTestOK-valid');
478
+
479
+ // Populate license details
480
+ $('#lcm-maxUsers').text(lsData.getInt('users') > 0 ? lsData.getInt('users').toString() : 'Unlimited');
481
+ $('#lcm-privateIp').text(lsData.getBool('private') ? 'Yes' : 'No');
482
+ $('#lcm-expire').text(lsData.getLong('expire') > 0 ? moment__WEBPACK_IMPORTED_MODULE_1__(lsData.getLong('expire')).format('DD MMM YYYY HH:mm') + ' GMT' + moment__WEBPACK_IMPORTED_MODULE_1__(lsData.getLong('expire')).format('Z') : 'Never');
483
+ $('#lcm-options').text('None');
484
+
485
+ if (lsData.containsKey('options') && lsData.getUtfString('options') != '')
486
+ {
487
+ let options = lsData.getUtfString('options').split(',');
488
+ $('#lcm-options').text(options.join(' | '));
489
+ }
490
+
491
+ const now = Date.now();
492
+ let isExpired = (lsData.getLong('expire') > 0) && (now > lsData.getLong('expire'));
493
+
494
+ if (isExpired)
495
+ $('#lcm-expireAlert').show();
496
+ else
497
+ $('#lcm-expireAlert').hide();
498
+
499
+ // Check the license initialization status
500
+ if (lsData.getBool('initStatus') && !isExpired)
501
+ $('#lcm-initNote').show();
502
+ else
503
+ $('#lcm-initNote').hide();
504
+ }
505
+ }
506
+ }
507
+
508
+ // else if ()
46
509
  }
47
510
 
48
511
  //---------------------------------
49
512
  // UI EVENT LISTENERS
50
513
  //---------------------------------
51
514
 
515
+ _onSubmitClick()
516
+ {
517
+ // Validate email addresses
518
+ // Invalid addresses are stripped off
519
+ let validEmails = [];
520
+
521
+ if ($('#lcm-emailIn').val() != '')
522
+ {
523
+ let enteredEmails = $('#lcm-emailIn').val().split(',');
524
+ const regExpPattern = /^[0-9a-zA-Z][-._a-zA-Z0-9]*@([0-9a-zA-Z][-._0-9a-zA-Z]*\.)+[a-zA-Z]{2,4}$/;
525
+
526
+ for (let i = 0; i < enteredEmails.length; i++)
527
+ {
528
+ const email = enteredEmails[i].trim();
529
+ if (regExpPattern.test(email))
530
+ validEmails.push(email);
531
+ }
532
+ }
52
533
 
534
+ let submitEmails = validEmails.join(',');
535
+ $('#lcm-emailIn').val(submitEmails);
536
+
537
+ if ($('#lcm-codeIn').val() != this._code || $('#lcm-emailIn').val() != this._emails || $('#lcm-alertCb').data('kendoSwitch').check() != this._alert)
538
+ {
539
+ this._code = $('#lcm-codeIn').val();
540
+ this._emails = submitEmails;
541
+ this._alert = $('#lcm-alertCb').data('kendoSwitch').check();
542
+
543
+ // Disable interface
544
+ this._enableInterface(false);
545
+
546
+ // Submid data
547
+ let params = new SFS2X.SFSObject();
548
+ params.putUtfString('code', this._code);
549
+ params.putUtfString('emails', this._emails);
550
+ params.putBool('alert', this._alert);
551
+
552
+ this.sendExtensionRequest(this.REQ_SAVE_DATA, params);
553
+ }
554
+ }
555
+
556
+ _onTestClick()
557
+ {
558
+ // Disable interface
559
+ this._enableInterface(false);
560
+
561
+ // Send request
562
+ this.sendExtensionRequest(this.REQ_TEST_CONNECTION);
563
+ }
564
+
565
+ _onRefreshClick()
566
+ {
567
+ // Disable interface
568
+ this._enableInterface(false);
569
+
570
+ // Send request
571
+ this.sendExtensionRequest(this.REQ_REFRESH_LICENSE);
572
+ }
53
573
 
54
574
  //------------------------------------
55
575
  // PRIVATE METHODS
56
576
  //------------------------------------
57
577
 
578
+ _enableInterface(enabled)
579
+ {
580
+ $('#lcm-codeIn').val(this._code);
581
+ $('#lcm-emailIn').val(this._emails);
582
+ $('#lcm-alertCb').data('kendoSwitch').check(this._alert);
583
+
584
+ $('#lcm-submitBt').attr('disabled', !enabled);
585
+ $('#lcm-testBt').attr('disabled', !(enabled && this._code != ''));
58
586
 
587
+ $('#lcm-refreshBt').attr('disabled', !enabled);
588
+ }
589
+
590
+ _switchView(viewId)
591
+ {
592
+ document.getElementById('lcm-resultVS').selectedElement = document.getElementById(viewId);
593
+ }
59
594
 
60
595
  //---------------------------------
61
596
  // PRIVATE GETTERS
@@ -64,8 +599,9 @@ class Template extends _base_module__WEBPACK_IMPORTED_MODULE_0__["BaseModule"]
64
599
 
65
600
  }
66
601
 
602
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! jquery */ "jquery")))
67
603
 
68
604
  /***/ })
69
605
 
70
606
  }]);
71
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2pzL2NvcmUvbW9kdWxlcy9tb2R1bGUtMTEuYnVuZGxlLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYXBwbGljYXRpb24vLi9zcmMvbW9kdWxlcy90ZW1wbGF0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Jhc2VNb2R1bGV9IGZyb20gJy4vYmFzZS1tb2R1bGUnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUZW1wbGF0ZSBleHRlbmRzIEJhc2VNb2R1bGVcbntcblx0Y29uc3RydWN0b3IoKVxuXHR7XG5cdCAgICBzdXBlcigndGVtcGxhdGUnKTtcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdC8vIENPTU1PTiBNT0RVTEUgSU5URVJGQUNFIE1FVEhPRFNcblx0Ly8gVGhpcyBtZW1iZXJzIGFyZSB1c2VkIGJ5IHRoZSBtYWluIGNvbnRyb2xsZXJcblx0Ly8gdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgbW9kdWxlJ3MgY29udHJvbGxlci5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRpbml0aWFsaXplKGlkRGF0YSwgc2hlbGxDb250cm9sbGVyKVxuXHR7XG5cdFx0Ly8gQ2FsbCBzdXBlciBtZXRob2Rcblx0XHRzdXBlci5pbml0aWFsaXplKGlkRGF0YSwgc2hlbGxDb250cm9sbGVyKTtcblxuXHR9XG5cblx0ZGVzdHJveSgpXG5cdHtcblx0XHQvLyBDYWxsIHN1cGVyIG1ldGhvZFxuXHRcdHN1cGVyLmRlc3Ryb3koKTtcblx0fVxuXG5cdG9uRXh0ZW5zaW9uQ29tbWFuZChjb21tYW5kLCBkYXRhKVxuXHR7XG5cblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdC8vIFVJIEVWRU5UIExJU1RFTkVSU1xuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQvLyBQUklWQVRFIE1FVEhPRFNcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Ly8gUFJJVkFURSBHRVRURVJTXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QSIsInNvdXJjZVJvb3QiOiIifQ==
607
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2pzL2NvcmUvbW9kdWxlcy9tb2R1bGUtMTEuYnVuZGxlLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYXBwbGljYXRpb24vLi9zcmMvbW9kdWxlcy9saWNlbnNlLW1hbmFnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCYXNlTW9kdWxlfSBmcm9tICcuL2Jhc2UtbW9kdWxlJztcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaWNlbnNlTWFuYWdlciBleHRlbmRzIEJhc2VNb2R1bGVcbntcblx0Y29uc3RydWN0b3IoKVxuXHR7XG5cdCAgICBzdXBlcignbGljZW5zZU1hbicpO1xuXG5cdFx0Ly8gT3V0Z29pbmcgcmVxdWVzdHNcblx0XHR0aGlzLlJFUV9HRVRfREFUQSA9ICdnZXREYXRhJztcblx0XHR0aGlzLlJFUV9TQVZFX0RBVEEgPSAnc2F2ZURhdGEnO1xuXHRcdHRoaXMuUkVRX1RFU1RfQ09OTkVDVElPTiA9ICd0ZXN0Q29ubic7XG5cdFx0dGhpcy5SRVFfUkVGUkVTSF9MSUNFTlNFID0gJ3JlZnJlc2hMaWMnO1xuXG5cdFx0Ly8gSW5jb21pbmcgcmVzcG9uc2VzXG5cdFx0dGhpcy5SRVNQX0RBVEEgPSAnZGF0YSc7XG5cdFx0dGhpcy5SRVNQX0RBVEFfU0FWRUQgPSAnZGF0YVNhdmVkJztcblx0XHR0aGlzLlJFU1BfVEVTVF9SRVNVTFQgPSAndGVzdFJlcyc7XG5cblx0XHR0aGlzLkNPTU1VTklDQVRJT05fQ0hFQ0tfT0sgPSAxO1xuXHRcdHRoaXMuQ09NTVVOSUNBVElPTl9DSEVDS19LT19MSUNFTlNFX0lOVkFMSUQgPSAyO1xuXG5cdFx0dGhpcy5fY29kZSA9ICcnO1xuXHRcdHRoaXMuX2VtYWlscyA9ICcnO1xuXHRcdHRoaXMuX2FsZXJ0ID0gZmFsc2U7XG5cdH1cblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQvLyBDT01NT04gTU9EVUxFIElOVEVSRkFDRSBNRVRIT0RTXG5cdC8vIFRoaXMgbWVtYmVycyBhcmUgdXNlZCBieSB0aGUgbWFpbiBjb250cm9sbGVyXG5cdC8vIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIG1vZHVsZSdzIGNvbnRyb2xsZXIuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0aW5pdGlhbGl6ZShpZERhdGEsIHNoZWxsQ29udHJvbGxlcilcblx0e1xuXHRcdC8vIENhbGwgc3VwZXIgbWV0aG9kXG5cdFx0c3VwZXIuaW5pdGlhbGl6ZShpZERhdGEsIHNoZWxsQ29udHJvbGxlcik7XG5cblx0XHQvLyBJbml0aWFsaXplIGtlbmRvIHN3aXRjaFxuXHRcdGtlbmRvLmluaXQoJCgnI2xjbS1hbGVydENiJykpO1xuXG5cdFx0Ly8gSW5pdGlhbGl6ZSBoZWxwIHRvb2x0aXBzXG5cdFx0JCh0aGlzKS5rZW5kb1Rvb2x0aXAoe1xuXHRcdFx0ZmlsdGVyOiAnaVt0aXRsZV0uaGVscCcsXG5cdFx0XHRwb3NpdGlvbjogJ3JpZ2h0Jyxcblx0XHRcdGNvbnRlbnQ6IGZ1bmN0aW9uKGUpIHtcblx0XHRcdFx0cmV0dXJuIGA8ZGl2IGNsYXNzPVwiaGVscC10b29sdGlwXCI+JHtlLnRhcmdldC5kYXRhKCd0aXRsZScpfTwvZGl2PmA7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHQvLyBBZGQgYnV0dG9uIGV2ZW50IGxpc3RlbmVyc1xuXHRcdCQoJyNsY20tcmVmcmVzaEJ0Jykub24oJ2NsaWNrJywgJC5wcm94eSh0aGlzLl9vblJlZnJlc2hDbGljaywgdGhpcykpO1xuXHRcdCQoJyNsY20tc3VibWl0QnQnKS5vbignY2xpY2snLCAkLnByb3h5KHRoaXMuX29uU3VibWl0Q2xpY2ssIHRoaXMpKTtcblx0XHQkKCcjbGNtLXRlc3RCdCcpLm9uKCdjbGljaycsICQucHJveHkodGhpcy5fb25UZXN0Q2xpY2ssIHRoaXMpKTtcblxuXHRcdC8vIERpc2FibGUgaW50ZXJmYWNlXG5cdFx0dGhpcy5fZW5hYmxlSW50ZXJmYWNlKGZhbHNlKTtcblxuXHRcdC8vIFJlcXVlc3QgbGljZW5zZSBkYXRhIHRvIHNlcnZlciBpbnN0YW5jZVxuXHRcdHRoaXMuc2VuZEV4dGVuc2lvblJlcXVlc3QodGhpcy5SRVFfR0VUX0RBVEEpO1xuXHR9XG5cblx0ZGVzdHJveSgpXG5cdHtcblx0XHQvLyBDYWxsIHN1cGVyIG1ldGhvZFxuXHRcdHN1cGVyLmRlc3Ryb3koKTtcblxuXHRcdC8vIFJlbW92ZSBidXR0b24gZXZlbnQgbGlzdGVuZXJzXG5cdFx0JCgnI2xjbS1yZWZyZXNoQnQnKS5vZmYoJ2NsaWNrJyk7XG5cdFx0JCgnI2xjbS1zdWJtaXRCdCcpLm9mZignY2xpY2snKTtcblx0XHQkKCcjbGNtLXRlc3RCdCcpLm9mZignY2xpY2snKTtcblx0fVxuXG5cdG9uRXh0ZW5zaW9uQ29tbWFuZChjb21tYW5kLCBkYXRhKVxuXHR7XG5cdFx0Ly8gTGljZW5zZSBjb25maWd1cmF0aW9uIGRhdGEgcmVjZWl2ZWRcblx0XHRpZiAoY29tbWFuZCA9PSB0aGlzLlJFU1BfREFUQSlcblx0XHR7XG5cdFx0XHQvLyBDb25maWd1cmF0aW9uXG5cdFx0XHRpZiAoZGF0YS5jb250YWluc0tleSgnY29kZScpKVxuXHRcdFx0XHR0aGlzLl9jb2RlID0gZGF0YS5nZXRVdGZTdHJpbmcoJ2NvZGUnKTtcblxuXHRcdFx0aWYgKGRhdGEuY29udGFpbnNLZXkoJ2VtYWlscycpKVxuXHRcdFx0XHR0aGlzLl9lbWFpbHMgPSBkYXRhLmdldFV0ZlN0cmluZygnZW1haWxzJyk7XG5cblx0XHRcdGlmIChkYXRhLmNvbnRhaW5zS2V5KCdhbGVydCcpKVxuXHRcdFx0XHR0aGlzLl9hbGVydCA9IGRhdGEuZ2V0Qm9vbCgnYWxlcnQnKTtcblxuXHRcdFx0Ly8gRGlzcGxheSBjdXJyZW50bHkgcnVubmluZyBsaWNlbnNlIGRldGFpbHNcblx0XHRcdGlmIChkYXRhLmNvbnRhaW5zS2V5KCdkZXRhaWxzJykpXG5cdFx0XHR7XG5cdFx0XHRcdGxldCBsaWNEZXRhaWxzID0gZGF0YS5nZXRVdGZTdHJpbmdBcnJheSgnZGV0YWlscycpO1xuXG5cdFx0XHRcdCQoJyNsY20tY3VyclR5cGUnKS50ZXh0KGxpY0RldGFpbHNbMF0pO1xuXHRcdFx0XHQkKCcjbGNtLWN1cnJNYXhVc2VycycpLnRleHQobGljRGV0YWlsc1sxXSk7XG5cdFx0XHRcdCQoJyNsY20tY3Vyck9wdGlvbnMnKS50ZXh0KGxpY0RldGFpbHNbMl0uc3BsaXQoJywnKS5qb2luKCcgfCAnKSk7XG5cdFx0XHRcdCQoJyNsY20tY3VyckV4cGlyZScpLnRleHQobGljRGV0YWlsc1szXSk7XG5cdFx0XHRcdCQoJyNsY20tY3VyclByaXZhdGUnKS50ZXh0KGxpY0RldGFpbHNbNF0pO1xuXG5cdFx0XHRcdGlmIChsaWNEZXRhaWxzWzJdICE9ICcnKVxuXHRcdFx0XHRcdCQoJyNsY20tY3Vyck9wdGlvbnMnKS5wYXJlbnQoKS5zaG93KCk7XG5cdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHQkKCcjbGNtLWN1cnJPcHRpb25zJykucGFyZW50KCkuaGlkZSgpO1xuXG5cdFx0XHRcdGlmIChsaWNEZXRhaWxzWzNdICE9ICcnKVxuXHRcdFx0XHRcdCQoJyNsY20tY3VyckV4cGlyZScpLnBhcmVudCgpLnNob3coKTtcblx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdCQoJyNsY20tY3VyckV4cGlyZScpLnBhcmVudCgpLmhpZGUoKTtcblxuXHRcdFx0XHRpZiAobGljRGV0YWlsc1s0XSAhPSAnJylcblx0XHRcdFx0XHQkKCcjbGNtLWN1cnJQcml2YXRlJykucGFyZW50KCkuc2hvdygpO1xuXHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0JCgnI2xjbS1jdXJyUHJpdmF0ZScpLnBhcmVudCgpLmhpZGUoKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gRGlzcGxheSB3YXJuaW5nIGlzIHNlbnQgYnkgdGhlIHNlcnZlclxuXHRcdFx0Ly8gVGhpcyBjYW4gaGFwcGVuIGlmIGEgbGljZW5zZSByZWZyZXNoIHJlcXVlc3Qgd2FzIHNlbnQgYW5kIHRoaXMgY291bGRuJ3QgYmUgY29tcGxldGVkIG9yIGNhdXNlZCB0aGUgbGljZW5zZSB0byByZXZlcnQgdG8gQ0Vcblx0XHRcdGlmIChkYXRhLmNvbnRhaW5zS2V5KCd3YXJuaW5nJykpXG5cdFx0XHRcdHRoaXMuc2hlbGxDdHJsLnNob3dTaW1wbGVBbGVydChkYXRhLmdldFV0ZlN0cmluZygnd2FybmluZycpKTtcblxuXHRcdFx0dGhpcy5fZW5hYmxlSW50ZXJmYWNlKHRydWUpO1xuXHRcdH1cblxuXHRcdC8vIExpY2Vuc2UgY29uZmlndXJhdGlvbiB1cGRhdGUgY29uZmlybWF0aW9uXG5cdFx0ZWxzZSBpZiAoY29tbWFuZCA9PSB0aGlzLlJFU1BfREFUQV9TQVZFRClcblx0XHR7XG5cdFx0XHR0aGlzLl9jb2RlID0gZGF0YS5nZXRVdGZTdHJpbmcoJ2NvZGUnKTtcblx0XHRcdHRoaXMuX2VtYWlscyA9IGRhdGEuZ2V0VXRmU3RyaW5nKCdlbWFpbHMnKTtcblx0XHRcdHRoaXMuX2FsZXJ0ID0gZGF0YS5nZXRCb29sKCdhbGVydCcpO1xuXG5cdFx0XHQvLyBFbmFibGUgaW50ZXJmYWNlXG5cdFx0XHR0aGlzLl9lbmFibGVJbnRlcmZhY2UodHJ1ZSk7XG5cblx0XHRcdC8vIExvZyBtZXNzYWdlXG5cdFx0XHRjb25zdCB1cGRhdGVyID0gZGF0YS5nZXRVdGZTdHJpbmcoJ3VzZXInKTtcblxuXHRcdFx0aWYgKHVwZGF0ZXIgPT0gdGhpcy5zbWFydEZveC5teVNlbGYubmFtZSlcblx0XHRcdHtcblx0XHRcdFx0Ly8gRGlzcGxheSBub3RpZmljYXRpb25cblx0XHRcdFx0dGhpcy5zaGVsbEN0cmwuc2hvd05vdGlmaWNhdGlvbihgQ29uZmlndXJhdGlvbiB1cGRhdGVkYCwgYExpY2Vuc2UgZGV0YWlscyBzYXZlZCBzdWNjZXNzZnVsbHlgKTtcblxuXHRcdFx0XHQvLyBTaG93IHNjcmVlblxuXHRcdFx0XHR0aGlzLl9zd2l0Y2hWaWV3KCdsY20tcGFuZWxTYXZlZCcpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZVxuXHRcdFx0e1xuXHRcdFx0XHQvLyBEaXNwbGF5IG5vdGlmaWNhdGlvblxuXHRcdFx0XHR0aGlzLnNoZWxsQ3RybC5zaG93Tm90aWZpY2F0aW9uKGBDb25maWd1cmF0aW9uIHVwZGF0ZWRgLCBgQWRtaW5pc3RyYXRvciAke3VwZGF0ZXJ9IGhhcyBtb2RpZmllZCB0aGUgbGljZW5zZSBkZXRhaWxzYCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gUmVzcG9uc2UgdG8gTGljZW5zZSBTZXJ2ZXIgY29ubmVjdGlvbiB0ZXN0IHJlY2VpdmVkXG5cdFx0ZWxzZSBpZiAoY29tbWFuZCA9PSB0aGlzLlJFU1BfVEVTVF9SRVNVTFQpXG5cdFx0e1xuXHRcdFx0dGhpcy5fZW5hYmxlSW50ZXJmYWNlKHRydWUpO1xuXG5cdFx0XHRpZiAoZGF0YS5pc051bGwoJ2xzRGF0YScpKVxuXHRcdFx0e1xuXHRcdFx0XHQvLyBTaG93IHNjcmVlblxuXHRcdFx0XHR0aGlzLl9zd2l0Y2hWaWV3KCdsY20tcGFuZWxUZXN0S08nKTtcblx0XHRcdH1cblx0XHRcdGVsc2Vcblx0XHRcdHtcblx0XHRcdFx0bGV0IGxzRGF0YSA9IGRhdGEuZ2V0U0ZTT2JqZWN0KCdsc0RhdGEnKTtcblxuXHRcdFx0XHRpZiAobHNEYXRhLmdldEludCgnaWQnKSA9PSB0aGlzLkNPTU1VTklDQVRJT05fQ0hFQ0tfS09fTElDRU5TRV9JTlZBTElEKVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0Ly8gU2hvdyBzY3JlZW5cblx0XHRcdFx0XHR0aGlzLl9zd2l0Y2hWaWV3KCdsY20tcGFuZWxUZXN0T0staW52YWxpZCcpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKGxzRGF0YS5nZXRJbnQoJ2lkJykgPT0gdGhpcy5DT01NVU5JQ0FUSU9OX0NIRUNLX09LKVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0Ly8gU2hvdyBzY3JlZW5cblx0XHRcdFx0XHR0aGlzLl9zd2l0Y2hWaWV3KCdsY20tcGFuZWxUZXN0T0stdmFsaWQnKTtcblxuXHRcdFx0XHRcdC8vIFBvcHVsYXRlIGxpY2Vuc2UgZGV0YWlsc1xuXHRcdFx0XHRcdCQoJyNsY20tbWF4VXNlcnMnKS50ZXh0KGxzRGF0YS5nZXRJbnQoJ3VzZXJzJykgPiAwID8gbHNEYXRhLmdldEludCgndXNlcnMnKS50b1N0cmluZygpIDogJ1VubGltaXRlZCcpO1xuXHRcdFx0XHRcdCQoJyNsY20tcHJpdmF0ZUlwJykudGV4dChsc0RhdGEuZ2V0Qm9vbCgncHJpdmF0ZScpID8gJ1llcycgOiAnTm8nKTtcblx0XHRcdFx0XHQkKCcjbGNtLWV4cGlyZScpLnRleHQobHNEYXRhLmdldExvbmcoJ2V4cGlyZScpID4gMCA/IG1vbWVudChsc0RhdGEuZ2V0TG9uZygnZXhwaXJlJykpLmZvcm1hdCgnREQgTU1NIFlZWVkgSEg6bW0nKSArICcgR01UJyArIG1vbWVudChsc0RhdGEuZ2V0TG9uZygnZXhwaXJlJykpLmZvcm1hdCgnWicpIDogJ05ldmVyJyk7XG5cdFx0XHRcdFx0JCgnI2xjbS1vcHRpb25zJykudGV4dCgnTm9uZScpO1xuXG5cdFx0XHRcdFx0aWYgKGxzRGF0YS5jb250YWluc0tleSgnb3B0aW9ucycpICYmIGxzRGF0YS5nZXRVdGZTdHJpbmcoJ29wdGlvbnMnKSAhPSAnJylcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRsZXQgb3B0aW9ucyA9IGxzRGF0YS5nZXRVdGZTdHJpbmcoJ29wdGlvbnMnKS5zcGxpdCgnLCcpO1xuXHRcdFx0XHRcdFx0JCgnI2xjbS1vcHRpb25zJykudGV4dChvcHRpb25zLmpvaW4oJyB8ICcpKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuXHRcdFx0XHRcdGxldCBpc0V4cGlyZWQgPSAobHNEYXRhLmdldExvbmcoJ2V4cGlyZScpID4gMCkgJiYgKG5vdyA+IGxzRGF0YS5nZXRMb25nKCdleHBpcmUnKSk7XG5cblx0XHRcdFx0XHRpZiAoaXNFeHBpcmVkKVxuXHRcdFx0XHRcdFx0JCgnI2xjbS1leHBpcmVBbGVydCcpLnNob3coKTtcblx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHQkKCcjbGNtLWV4cGlyZUFsZXJ0JykuaGlkZSgpO1xuXG5cdFx0XHRcdFx0Ly8gQ2hlY2sgdGhlIGxpY2Vuc2UgaW5pdGlhbGl6YXRpb24gc3RhdHVzXG5cdFx0XHRcdFx0aWYgKGxzRGF0YS5nZXRCb29sKCdpbml0U3RhdHVzJykgJiYgIWlzRXhwaXJlZClcblx0XHRcdFx0XHRcdCQoJyNsY20taW5pdE5vdGUnKS5zaG93KCk7XG5cdFx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdFx0JCgnI2xjbS1pbml0Tm90ZScpLmhpZGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIGVsc2UgaWYgKClcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdC8vIFVJIEVWRU5UIExJU1RFTkVSU1xuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdF9vblN1Ym1pdENsaWNrKClcblx0e1xuXHRcdC8vIFZhbGlkYXRlIGVtYWlsIGFkZHJlc3Nlc1xuXHRcdC8vIEludmFsaWQgYWRkcmVzc2VzIGFyZSBzdHJpcHBlZCBvZmZcblx0XHRsZXQgdmFsaWRFbWFpbHMgPSBbXTtcblxuXHRcdGlmICgkKCcjbGNtLWVtYWlsSW4nKS52YWwoKSAhPSAnJylcblx0XHR7XG5cdFx0XHRsZXQgZW50ZXJlZEVtYWlscyA9ICQoJyNsY20tZW1haWxJbicpLnZhbCgpLnNwbGl0KCcsJyk7XG5cdFx0XHRjb25zdCByZWdFeHBQYXR0ZXJuID0gL15bMC05YS16QS1aXVstLl9hLXpBLVowLTldKkAoWzAtOWEtekEtWl1bLS5fMC05YS16QS1aXSpcXC4pK1thLXpBLVpdezIsNH0kLztcblxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBlbnRlcmVkRW1haWxzLmxlbmd0aDsgaSsrKVxuXHRcdFx0e1xuXHRcdFx0XHRjb25zdCBlbWFpbCA9IGVudGVyZWRFbWFpbHNbaV0udHJpbSgpO1xuXHRcdFx0XHRpZiAocmVnRXhwUGF0dGVybi50ZXN0KGVtYWlsKSlcblx0XHRcdFx0XHR2YWxpZEVtYWlscy5wdXNoKGVtYWlsKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRsZXQgc3VibWl0RW1haWxzID0gdmFsaWRFbWFpbHMuam9pbignLCcpO1xuXHRcdCQoJyNsY20tZW1haWxJbicpLnZhbChzdWJtaXRFbWFpbHMpO1xuXG5cdFx0aWYgKCQoJyNsY20tY29kZUluJykudmFsKCkgIT0gdGhpcy5fY29kZSB8fCAkKCcjbGNtLWVtYWlsSW4nKS52YWwoKSAhPSB0aGlzLl9lbWFpbHMgfHwgJCgnI2xjbS1hbGVydENiJykuZGF0YSgna2VuZG9Td2l0Y2gnKS5jaGVjaygpICE9IHRoaXMuX2FsZXJ0KVxuXHRcdHtcblx0XHRcdHRoaXMuX2NvZGUgPSAkKCcjbGNtLWNvZGVJbicpLnZhbCgpO1xuXHRcdFx0dGhpcy5fZW1haWxzID0gc3VibWl0RW1haWxzO1xuXHRcdFx0dGhpcy5fYWxlcnQgPSAkKCcjbGNtLWFsZXJ0Q2InKS5kYXRhKCdrZW5kb1N3aXRjaCcpLmNoZWNrKCk7XG5cblx0XHRcdC8vIERpc2FibGUgaW50ZXJmYWNlXG5cdFx0XHR0aGlzLl9lbmFibGVJbnRlcmZhY2UoZmFsc2UpO1xuXG5cdFx0XHQvLyBTdWJtaWQgZGF0YVxuXHRcdFx0bGV0IHBhcmFtcyA9IG5ldyBTRlMyWC5TRlNPYmplY3QoKTtcblx0XHRcdHBhcmFtcy5wdXRVdGZTdHJpbmcoJ2NvZGUnLCB0aGlzLl9jb2RlKTtcblx0XHRcdHBhcmFtcy5wdXRVdGZTdHJpbmcoJ2VtYWlscycsIHRoaXMuX2VtYWlscyk7XG5cdFx0XHRwYXJhbXMucHV0Qm9vbCgnYWxlcnQnLCB0aGlzLl9hbGVydCk7XG5cblx0XHRcdHRoaXMuc2VuZEV4dGVuc2lvblJlcXVlc3QodGhpcy5SRVFfU0FWRV9EQVRBLCBwYXJhbXMpO1xuXHRcdH1cblx0fVxuXG5cdF9vblRlc3RDbGljaygpXG5cdHtcblx0XHQvLyBEaXNhYmxlIGludGVyZmFjZVxuXHRcdHRoaXMuX2VuYWJsZUludGVyZmFjZShmYWxzZSk7XG5cblx0XHQvLyBTZW5kIHJlcXVlc3Rcblx0XHR0aGlzLnNlbmRFeHRlbnNpb25SZXF1ZXN0KHRoaXMuUkVRX1RFU1RfQ09OTkVDVElPTik7XG5cdH1cblxuXHRfb25SZWZyZXNoQ2xpY2soKVxuXHR7XG5cdFx0Ly8gRGlzYWJsZSBpbnRlcmZhY2Vcblx0XHR0aGlzLl9lbmFibGVJbnRlcmZhY2UoZmFsc2UpO1xuXG5cdFx0Ly8gU2VuZCByZXF1ZXN0XG5cdFx0dGhpcy5zZW5kRXh0ZW5zaW9uUmVxdWVzdCh0aGlzLlJFUV9SRUZSRVNIX0xJQ0VOU0UpO1xuXHR9XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Ly8gUFJJVkFURSBNRVRIT0RTXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0X2VuYWJsZUludGVyZmFjZShlbmFibGVkKVxuXHR7XG5cdFx0JCgnI2xjbS1jb2RlSW4nKS52YWwodGhpcy5fY29kZSk7XG5cdFx0JCgnI2xjbS1lbWFpbEluJykudmFsKHRoaXMuX2VtYWlscyk7XG5cdFx0JCgnI2xjbS1hbGVydENiJykuZGF0YSgna2VuZG9Td2l0Y2gnKS5jaGVjayh0aGlzLl9hbGVydCk7XG5cblx0XHQkKCcjbGNtLXN1Ym1pdEJ0JykuYXR0cignZGlzYWJsZWQnLCAhZW5hYmxlZCk7XG5cdFx0JCgnI2xjbS10ZXN0QnQnKS5hdHRyKCdkaXNhYmxlZCcsICEoZW5hYmxlZCAmJiB0aGlzLl9jb2RlICE9ICcnKSk7XG5cblx0XHQkKCcjbGNtLXJlZnJlc2hCdCcpLmF0dHIoJ2Rpc2FibGVkJywgIWVuYWJsZWQpO1xuXHR9XG5cblx0X3N3aXRjaFZpZXcodmlld0lkKVxuXHR7XG5cdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xjbS1yZXN1bHRWUycpLnNlbGVjdGVkRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHZpZXdJZCk7XG5cdH1cblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQvLyBQUklWQVRFIEdFVFRFUlNcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0EiLCJzb3VyY2VSb290IjoiIn0=