@simpleangularcontrols/sac-common 13.0.0-rc.10 → 13.0.0-rc.12

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 (176) hide show
  1. package/common/basedatetimecontrol.d.ts +99 -13
  2. package/common/basedatetimecontrol.d.ts.map +1 -1
  3. package/common/basemodelcontrol.d.ts +33 -25
  4. package/common/basemodelcontrol.d.ts.map +1 -1
  5. package/common/baseuploadcontrol.d.ts +73 -52
  6. package/common/baseuploadcontrol.d.ts.map +1 -1
  7. package/controls/checkbox/radiobutton.d.ts +63 -28
  8. package/controls/checkbox/radiobutton.d.ts.map +1 -1
  9. package/controls/contextmenu/contextmenu.d.ts +27 -20
  10. package/controls/contextmenu/contextmenu.d.ts.map +1 -1
  11. package/controls/contextmenu/contextmenu.interface.d.ts +4 -0
  12. package/controls/contextmenu/contextmenu.interface.d.ts.map +1 -0
  13. package/controls/contextmenu/contextmenu.interface.ngfactory.d.ts +2 -0
  14. package/controls/contextmenu/contextmenu.interface.ngfactory.d.ts.map +1 -0
  15. package/controls/contextmenu/contextmenu.interface.ngsummary.d.ts +2 -0
  16. package/controls/contextmenu/contextmenu.interface.ngsummary.d.ts.map +1 -0
  17. package/controls/contextmenu/contextmenuitem.d.ts +6 -1
  18. package/controls/contextmenu/contextmenuitem.d.ts.map +1 -1
  19. package/controls/contextmenu/contextmenuitembutton.d.ts +22 -21
  20. package/controls/contextmenu/contextmenuitembutton.d.ts.map +1 -1
  21. package/controls/datetime/date.d.ts +28 -27
  22. package/controls/datetime/date.d.ts.map +1 -1
  23. package/controls/datetime/datetime.d.ts +27 -27
  24. package/controls/datetime/datetime.d.ts.map +1 -1
  25. package/controls/datetime/time.d.ts +26 -26
  26. package/controls/datetime/time.d.ts.map +1 -1
  27. package/controls/dialog/dialog.d.ts +32 -44
  28. package/controls/dialog/dialog.d.ts.map +1 -1
  29. package/controls/layout/formlayout.d.ts +5 -1
  30. package/controls/layout/formlayout.d.ts.map +1 -1
  31. package/controls/list/buildvaluestring.d.ts +7 -0
  32. package/controls/list/buildvaluestring.d.ts.map +1 -0
  33. package/controls/list/buildvaluestring.ngfactory.d.ts +2 -0
  34. package/controls/list/buildvaluestring.ngfactory.d.ts.map +1 -0
  35. package/controls/list/buildvaluestring.ngsummary.d.ts +2 -0
  36. package/controls/list/buildvaluestring.ngsummary.d.ts.map +1 -0
  37. package/controls/list/dropdown.d.ts +9 -53
  38. package/controls/list/dropdown.d.ts.map +1 -1
  39. package/controls/list/dropdown.ngfactory.d.ts +0 -1
  40. package/controls/list/dropdown.ngfactory.d.ts.map +1 -1
  41. package/controls/list/dropdown.ngsummary.d.ts +0 -1
  42. package/controls/list/dropdown.ngsummary.d.ts.map +1 -1
  43. package/controls/list/dropdownoptions.d.ts +42 -0
  44. package/controls/list/dropdownoptions.d.ts.map +1 -0
  45. package/controls/list/dropdownoptions.ngfactory.d.ts +4 -0
  46. package/controls/list/dropdownoptions.ngfactory.d.ts.map +1 -0
  47. package/controls/list/dropdownoptions.ngsummary.d.ts +2 -0
  48. package/controls/list/dropdownoptions.ngsummary.d.ts.map +1 -0
  49. package/controls/static/formcontainer.d.ts +12 -4
  50. package/controls/static/formcontainer.d.ts.map +1 -1
  51. package/controls/tooltip/tooltip.d.ts +33 -51
  52. package/controls/tooltip/tooltip.d.ts.map +1 -1
  53. package/controls/treeview/treeview.d.ts +109 -109
  54. package/controls/treeview/treeview.d.ts.map +1 -1
  55. package/controls/treeview/treeview.ngfactory.d.ts +1 -1
  56. package/controls/treeview/treeview.ngsummary.d.ts +1 -1
  57. package/esm2020/common/basedatetimecontrol.mjs +65 -27
  58. package/esm2020/common/basemodelcontrol.mjs +73 -68
  59. package/esm2020/common/baseuploadcontrol.mjs +66 -57
  60. package/esm2020/controls/checkbox/radiobutton.mjs +43 -26
  61. package/esm2020/controls/contextmenu/contextmenu.interface.mjs +3 -0
  62. package/esm2020/controls/contextmenu/contextmenu.interface.ngfactory.mjs +3 -0
  63. package/esm2020/controls/contextmenu/contextmenu.interface.ngsummary.mjs +3 -0
  64. package/esm2020/controls/contextmenu/contextmenu.mjs +14 -14
  65. package/esm2020/controls/contextmenu/contextmenuitem.mjs +7 -4
  66. package/esm2020/controls/contextmenu/contextmenuitembutton.mjs +23 -15
  67. package/esm2020/controls/datetime/date.mjs +29 -30
  68. package/esm2020/controls/datetime/datetime.mjs +28 -30
  69. package/esm2020/controls/datetime/time.mjs +28 -30
  70. package/esm2020/controls/dialog/dialog.mjs +28 -41
  71. package/esm2020/controls/layout/formlayout.mjs +7 -8
  72. package/esm2020/controls/list/buildvaluestring.mjs +10 -0
  73. package/esm2020/controls/list/buildvaluestring.ngfactory.mjs +3 -0
  74. package/esm2020/controls/list/buildvaluestring.ngsummary.mjs +3 -0
  75. package/esm2020/controls/list/dropdown.mjs +22 -67
  76. package/esm2020/controls/list/dropdown.ngfactory.mjs +3 -3
  77. package/esm2020/controls/list/dropdown.ngsummary.mjs +3 -3
  78. package/esm2020/controls/list/dropdownoptions.mjs +22 -0
  79. package/esm2020/controls/list/dropdownoptions.ngfactory.mjs +3 -0
  80. package/esm2020/controls/list/dropdownoptions.ngsummary.mjs +3 -0
  81. package/esm2020/controls/static/formcontainer.mjs +12 -8
  82. package/esm2020/controls/tooltip/tooltip.mjs +43 -71
  83. package/esm2020/controls/treeview/treeview.mjs +102 -96
  84. package/esm2020/controls/treeview/treeview.ngfactory.mjs +3 -3
  85. package/esm2020/controls/treeview/treeview.ngsummary.mjs +3 -3
  86. package/esm2020/interfaces/ISacConfigurationService.mjs +3 -3
  87. package/esm2020/interfaces/ISacIconService.mjs +3 -3
  88. package/esm2020/interfaces/ISacUploadEventCompleteState.mjs +3 -0
  89. package/esm2020/interfaces/ISacUploadEventCompleteState.ngfactory.mjs +3 -0
  90. package/esm2020/interfaces/ISacUploadEventCompleteState.ngsummary.mjs +3 -0
  91. package/esm2020/interfaces/treeviewaction.interface.mjs +3 -0
  92. package/esm2020/interfaces/treeviewaction.interface.ngfactory.mjs +3 -0
  93. package/esm2020/interfaces/treeviewaction.interface.ngsummary.mjs +3 -0
  94. package/esm2020/public_api.mjs +6 -6
  95. package/esm2020/services/sac-configuration.service.mjs +8 -10
  96. package/esm2020/services/sac-icon.service.mjs +16 -8
  97. package/esm2020/utilities/enums.mjs +5 -3
  98. package/esm2020/utilities/popuphelper.mjs +80 -0
  99. package/esm2020/utilities/popuphelper.ngfactory.mjs +3 -0
  100. package/esm2020/utilities/popuphelper.ngsummary.mjs +3 -0
  101. package/esm2020/validation/equals.validator.mjs +3 -0
  102. package/esm2020/validation/equals.validator.ngfactory.mjs +3 -0
  103. package/esm2020/validation/equals.validator.ngsummary.mjs +3 -0
  104. package/esm2020/validation/notequals.validator.mjs +3 -0
  105. package/esm2020/validation/notequals.validator.ngfactory.mjs +3 -0
  106. package/esm2020/validation/notequals.validator.ngsummary.mjs +3 -0
  107. package/esm2020/validation/validation.mjs +40 -26
  108. package/fesm2015/simpleangularcontrols-sac-common.mjs +1358 -1253
  109. package/fesm2015/simpleangularcontrols-sac-common.mjs.map +1 -1
  110. package/fesm2020/simpleangularcontrols-sac-common.mjs +1358 -1253
  111. package/fesm2020/simpleangularcontrols-sac-common.mjs.map +1 -1
  112. package/interfaces/ISacConfigurationService.d.ts +11 -7
  113. package/interfaces/ISacConfigurationService.d.ts.map +1 -1
  114. package/interfaces/ISacIconService.d.ts +18 -2
  115. package/interfaces/ISacIconService.d.ts.map +1 -1
  116. package/interfaces/ISacUploadEventCompleteState.d.ts +6 -0
  117. package/interfaces/ISacUploadEventCompleteState.d.ts.map +1 -0
  118. package/interfaces/ISacUploadEventCompleteState.ngfactory.d.ts +2 -0
  119. package/interfaces/ISacUploadEventCompleteState.ngfactory.d.ts.map +1 -0
  120. package/interfaces/ISacUploadEventCompleteState.ngsummary.d.ts +2 -0
  121. package/interfaces/ISacUploadEventCompleteState.ngsummary.d.ts.map +1 -0
  122. package/interfaces/treeviewaction.interface.d.ts +5 -0
  123. package/interfaces/treeviewaction.interface.d.ts.map +1 -0
  124. package/interfaces/treeviewaction.interface.ngfactory.d.ts +2 -0
  125. package/interfaces/treeviewaction.interface.ngfactory.d.ts.map +1 -0
  126. package/interfaces/treeviewaction.interface.ngsummary.d.ts +2 -0
  127. package/interfaces/treeviewaction.interface.ngsummary.d.ts.map +1 -0
  128. package/package.json +1 -1
  129. package/public_api.d.ts +6 -5
  130. package/public_api.d.ts.map +1 -1
  131. package/services/sac-configuration.service.d.ts +8 -0
  132. package/services/sac-configuration.service.d.ts.map +1 -1
  133. package/services/sac-icon.service.d.ts +33 -1
  134. package/services/sac-icon.service.d.ts.map +1 -1
  135. package/simpleangularcontrols-sac-common-13.0.0-rc.12.tgz +0 -0
  136. package/utilities/enums.d.ts +3 -1
  137. package/utilities/enums.d.ts.map +1 -1
  138. package/utilities/popuphelper.d.ts +84 -0
  139. package/utilities/popuphelper.d.ts.map +1 -0
  140. package/utilities/popuphelper.ngfactory.d.ts +2 -0
  141. package/utilities/popuphelper.ngfactory.d.ts.map +1 -0
  142. package/utilities/popuphelper.ngsummary.d.ts +2 -0
  143. package/utilities/popuphelper.ngsummary.d.ts.map +1 -0
  144. package/validation/equals.validator.d.ts +3 -0
  145. package/validation/equals.validator.d.ts.map +1 -0
  146. package/validation/equals.validator.ngfactory.d.ts +2 -0
  147. package/validation/equals.validator.ngfactory.d.ts.map +1 -0
  148. package/validation/equals.validator.ngsummary.d.ts +2 -0
  149. package/validation/equals.validator.ngsummary.d.ts.map +1 -0
  150. package/validation/notequals.validator.d.ts +3 -0
  151. package/validation/notequals.validator.d.ts.map +1 -0
  152. package/validation/notequals.validator.ngfactory.d.ts +2 -0
  153. package/validation/notequals.validator.ngfactory.d.ts.map +1 -0
  154. package/validation/notequals.validator.ngsummary.d.ts +2 -0
  155. package/validation/notequals.validator.ngsummary.d.ts.map +1 -0
  156. package/validation/validation.d.ts +24 -6
  157. package/validation/validation.d.ts.map +1 -1
  158. package/controls/treeview/ngtreeitemaction.d.ts +0 -44
  159. package/controls/treeview/ngtreeitemaction.d.ts.map +0 -1
  160. package/controls/treeview/ngtreeitemaction.ngfactory.d.ts +0 -4
  161. package/controls/treeview/ngtreeitemaction.ngfactory.d.ts.map +0 -1
  162. package/controls/treeview/ngtreeitemaction.ngsummary.d.ts +0 -2
  163. package/controls/treeview/ngtreeitemaction.ngsummary.d.ts.map +0 -1
  164. package/controls/treeview/treeviewchild.d.ts +0 -16
  165. package/controls/treeview/treeviewchild.d.ts.map +0 -1
  166. package/controls/treeview/treeviewchild.ngfactory.d.ts +0 -4
  167. package/controls/treeview/treeviewchild.ngfactory.d.ts.map +0 -1
  168. package/controls/treeview/treeviewchild.ngsummary.d.ts +0 -2
  169. package/controls/treeview/treeviewchild.ngsummary.d.ts.map +0 -1
  170. package/esm2020/controls/treeview/ngtreeitemaction.mjs +0 -16
  171. package/esm2020/controls/treeview/ngtreeitemaction.ngfactory.mjs +0 -3
  172. package/esm2020/controls/treeview/ngtreeitemaction.ngsummary.mjs +0 -3
  173. package/esm2020/controls/treeview/treeviewchild.mjs +0 -8
  174. package/esm2020/controls/treeview/treeviewchild.ngfactory.mjs +0 -3
  175. package/esm2020/controls/treeview/treeviewchild.ngsummary.mjs +0 -3
  176. package/simpleangularcontrols-sac-common-13.0.0-rc.10.tgz +0 -0
@@ -1,7 +1,5 @@
1
- function cov_2htktrox8d(){var path="C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\validation\\validation.mjs";var hash="84ef35a700d0de35d487e6e6a873c3ffb86dd6dd";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\validation\\validation.mjs",statementMap:{"0":{start:{line:20,column:15},end:{line:20,column:33}},"1":{start:{line:34,column:8},end:{line:34,column:111}},"2":{start:{line:44,column:8},end:{line:44,column:78}},"3":{start:{line:55,column:8},end:{line:55,column:88}},"4":{start:{line:66,column:8},end:{line:66,column:86}},"5":{start:{line:77,column:8},end:{line:77,column:88}},"6":{start:{line:87,column:8},end:{line:87,column:75}},"7":{start:{line:98,column:8},end:{line:98,column:90}},"8":{start:{line:109,column:8},end:{line:109,column:86}},"9":{start:{line:120,column:8},end:{line:120,column:86}},"10":{start:{line:131,column:8},end:{line:131,column:86}},"11":{start:{line:142,column:8},end:{line:142,column:86}},"12":{start:{line:152,column:8},end:{line:152,column:81}},"13":{start:{line:163,column:8},end:{line:163,column:88}},"14":{start:{line:174,column:8},end:{line:174,column:102}},"15":{start:{line:185,column:8},end:{line:185,column:105}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:33,column:4},end:{line:33,column:5}},loc:{start:{line:33,column:138},end:{line:35,column:5}},line:33},"1":{name:"(anonymous_1)",decl:{start:{line:43,column:4},end:{line:43,column:5}},loc:{start:{line:43,column:65},end:{line:45,column:5}},line:43},"2":{name:"(anonymous_2)",decl:{start:{line:54,column:4},end:{line:54,column:5}},loc:{start:{line:54,column:75},end:{line:56,column:5}},line:54},"3":{name:"(anonymous_3)",decl:{start:{line:65,column:4},end:{line:65,column:5}},loc:{start:{line:65,column:73},end:{line:67,column:5}},line:65},"4":{name:"(anonymous_4)",decl:{start:{line:76,column:4},end:{line:76,column:5}},loc:{start:{line:76,column:75},end:{line:78,column:5}},line:76},"5":{name:"(anonymous_5)",decl:{start:{line:86,column:4},end:{line:86,column:5}},loc:{start:{line:86,column:62},end:{line:88,column:5}},line:86},"6":{name:"(anonymous_6)",decl:{start:{line:97,column:4},end:{line:97,column:5}},loc:{start:{line:97,column:77},end:{line:99,column:5}},line:97},"7":{name:"(anonymous_7)",decl:{start:{line:108,column:4},end:{line:108,column:5}},loc:{start:{line:108,column:73},end:{line:110,column:5}},line:108},"8":{name:"(anonymous_8)",decl:{start:{line:119,column:4},end:{line:119,column:5}},loc:{start:{line:119,column:73},end:{line:121,column:5}},line:119},"9":{name:"(anonymous_9)",decl:{start:{line:130,column:4},end:{line:130,column:5}},loc:{start:{line:130,column:73},end:{line:132,column:5}},line:130},"10":{name:"(anonymous_10)",decl:{start:{line:141,column:4},end:{line:141,column:5}},loc:{start:{line:141,column:73},end:{line:143,column:5}},line:141},"11":{name:"(anonymous_11)",decl:{start:{line:151,column:4},end:{line:151,column:5}},loc:{start:{line:151,column:68},end:{line:153,column:5}},line:151},"12":{name:"(anonymous_12)",decl:{start:{line:162,column:4},end:{line:162,column:5}},loc:{start:{line:162,column:75},end:{line:164,column:5}},line:162},"13":{name:"(anonymous_13)",decl:{start:{line:173,column:4},end:{line:173,column:5}},loc:{start:{line:173,column:89},end:{line:175,column:5}},line:173},"14":{name:"(anonymous_14)",decl:{start:{line:184,column:4},end:{line:184,column:5}},loc:{start:{line:184,column:92},end:{line:186,column:5}},line:184}},branchMap:{"0":{loc:{start:{line:33,column:96},end:{line:33,column:112}},type:"default-arg",locations:[{start:{line:33,column:108},end:{line:33,column:112}}],line:33},"1":{loc:{start:{line:33,column:114},end:{line:33,column:136}},type:"default-arg",locations:[{start:{line:33,column:127},end:{line:33,column:136}}],line:33}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0},b:{"0":[0],"1":[0]},inputSourceMap:{version:3,file:"validation.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/validation/validation.ts"],names:[],mappings:"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",sourcesContent:["import { ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport * as moment_ from 'moment';\r\nimport { LanguageModel } from '../models/languagemodel';\r\nimport { isValidDateValidator } from './invaliddate.validator';\r\nimport { maxDateValidator } from './maxdate.validator';\r\nimport { maxTimeValidator } from './maxtime.validator';\r\nimport { maxValueValidator } from './maxvalue.validator';\r\nimport { minDateValidator } from './mindate.validator';\r\nimport { minFilesValidator } from './minfiles.validator';\r\nimport { minLengthValidator } from './minlength.validator';\r\nimport { minTimeValidator } from './mintime.validator';\r\nimport { minValueValidator } from './minvalue.validator';\r\nimport { multilanguageRequiredValidator } from './multilanguagerequired.validator';\r\nimport { multilanguageRequiredAnyValidator } from './multilanguagerequiredany.validator';\r\nimport { patternValidator } from './pattern.validator';\r\nimport { requiredValidator } from './required.validator';\r\nimport { CreateValidationError } from './validationerrorcreator';\r\nimport { emailValidator } from './email.validator';\r\n/**\r\n * Moment\r\n */\r\nconst moment = moment_['default'];\r\n\r\n/**\r\n * Klasse mit Standard Validatoren\r\n */\r\nexport class Validation {\r\n /**\r\n * Die Methode ist von jedem Validator aufgerufen. Die setzt sowohl den errorType des gerp\xFCfte Item, als auch die ErrorMessage (gem\xE4ss von errorType, FieldName und Parameters).\r\n * @param errorType Typ den Fehler\r\n * @param errorMessageKey Error Message Key\r\n * @param errorMessageValidationSummaryKey Error Message Key f\xFCr Validation Summary\r\n * @param fieldName Label oder Name des Feldes\r\n * @param parameters Parametern die in den Meldungen als Platzhalter verwendet werden k\xF6nnen\r\n */\r\n static GetValidationErrorItem(\r\n errorType: string,\r\n errorMessageKey: string,\r\n errorMessageValidationSummaryKey: string,\r\n fieldName: string = null,\r\n parameters: Map<string, any> = new Map<string, any>()\r\n ): any {\r\n return CreateValidationError(\r\n errorType,\r\n errorMessageKey,\r\n errorMessageValidationSummaryKey,\r\n parameters\r\n );\r\n }\r\n\r\n /**\r\n * Validator f\xFCr Required State\r\n * @param control Control das Validiert wird\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static required(\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return requiredValidator(validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validator f\xFCr Min Value\r\n * @param control Control das Validiert wird\r\n * @param minvalue Min. Value\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static minValue(\r\n minvalue: number,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return minValueValidator(\r\n minvalue,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validierung mit einem RegEx Pattern\r\n * @param control Control das validiert werden soll.\r\n * @param pattern RegEx Pattern\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static pattern(\r\n pattern: string,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return patternValidator(\r\n pattern,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validator f\xFCr Max Value\r\n * @param control Control das Validiert werden soll\r\n * @param maxvalue Max. Wert\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static maxValue(\r\n maxvalue: number,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return maxValueValidator(\r\n maxvalue,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validiert Feld auf E-Mail Adresse\r\n * @param control Control das Valdiert werden soll\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static email(\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return emailValidator(validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validiert auf die L\xE4nge des Wertes im Control\r\n * @param control Control das Validiert werden soll\r\n * @param minlength Min. L\xE4nge des Wertes\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static minLength(\r\n minlength: number,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return minLengthValidator(\r\n minlength,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validiert ob das Datum neuer als minDate ist\r\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\r\n * @param minDate Min. Datum\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static minDate(\r\n minDate: Date,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return minDateValidator(\r\n minDate,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validiert ob das Datum \xE4lter als maxDate ist\r\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\r\n * @param maxDate max. Datum\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static maxDate(\r\n maxDate: Date,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return maxDateValidator(\r\n maxDate,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validiert ob die Zeit sp\xE4ter als minTime ist.\r\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\r\n * @param minTime Min. Zeit\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static minTime(\r\n minTime: Date,\r\n validationMessage: string,\r\n validationMessageSummary: string\r\n ): ValidatorFn {\r\n return minTimeValidator(\r\n minTime,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validiert ob die Zeit fr\xFCher als maxTime ist.\r\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\r\n * @param maxTime Min. Zeit\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static maxTime(\r\n maxTime: Date,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return maxTimeValidator(\r\n maxTime,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validator der pr\xFCft ob der Wert ein Datum ist.\r\n * @param control Control mit IDateTimeControl Interface implementierung\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die beim Control angezeigt wird\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static isValidDate(\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return isValidDateValidator(validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validator f\xFCr min. Anzahl von Uploads\r\n * @param control Control das Validatiert werden soll. Control muss IUploadControl implementiert haben\r\n * @param minFiles Min. Anzahl Files die hochgeladen werden m\xFCssen\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static minFiles(\r\n minFiles: number,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return minFilesValidator(\r\n minFiles,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validator f\xFCr MultiLanguage Control, welcher \xFCberpr\xFCft ob alle Sprachen erfasst sind.\r\n * @param control Control das Validatiert werden soll\r\n * @param languages Sprachen die im Control erfasst werden k\xF6nnen.\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static multilanguageRequired(\r\n languages: LanguageModel[],\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return multilanguageRequiredValidator(\r\n languages,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validator f\xFCr MultiLanguage Control, welcher \xFCberpr\xFCft ob min. ein Wert erfasst wurde\r\n * @param control Control das Validatiert werden soll\r\n * @param languages Sprachen die im Control erfasst werden k\xF6nnen.\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static multilanguageRequiredAny(\r\n languages: LanguageModel[],\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return multilanguageRequiredAnyValidator(\r\n languages,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n}\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"84ef35a700d0de35d487e6e6a873c3ffb86dd6dd"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
- cov_2htktrox8d=function(){return actualCoverage;};}return actualCoverage;}cov_2htktrox8d();import*as moment_ from'moment';import{isValidDateValidator}from'./invaliddate.validator';import{maxDateValidator}from'./maxdate.validator';import{maxTimeValidator}from'./maxtime.validator';import{maxValueValidator}from'./maxvalue.validator';import{minDateValidator}from'./mindate.validator';import{minFilesValidator}from'./minfiles.validator';import{minLengthValidator}from'./minlength.validator';import{minTimeValidator}from'./mintime.validator';import{minValueValidator}from'./minvalue.validator';import{multilanguageRequiredValidator}from'./multilanguagerequired.validator';import{multilanguageRequiredAnyValidator}from'./multilanguagerequiredany.validator';import{patternValidator}from'./pattern.validator';import{requiredValidator}from'./required.validator';import{CreateValidationError}from'./validationerrorcreator';import{emailValidator}from'./email.validator';/**
3
- * Moment
4
- */const moment=(cov_2htktrox8d().s[0]++,moment_['default']);/**
1
+ function cov_2htktrox8d(){var path="C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\validation\\validation.mjs";var hash="cb94a843218a35066202334fa8eea0f0e8911c17";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng13\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2020\\validation\\validation.mjs",statementMap:{"0":{start:{line:32,column:8},end:{line:32,column:111}},"1":{start:{line:42,column:8},end:{line:42,column:78}},"2":{start:{line:54,column:8},end:{line:54,column:96}},"3":{start:{line:64,column:8},end:{line:64,column:88}},"4":{start:{line:75,column:8},end:{line:75,column:86}},"5":{start:{line:86,column:8},end:{line:86,column:88}},"6":{start:{line:96,column:8},end:{line:96,column:75}},"7":{start:{line:107,column:8},end:{line:107,column:90}},"8":{start:{line:118,column:8},end:{line:118,column:86}},"9":{start:{line:129,column:8},end:{line:129,column:86}},"10":{start:{line:140,column:8},end:{line:140,column:86}},"11":{start:{line:151,column:8},end:{line:151,column:86}},"12":{start:{line:161,column:8},end:{line:161,column:81}},"13":{start:{line:172,column:8},end:{line:172,column:88}},"14":{start:{line:183,column:8},end:{line:183,column:98}},"15":{start:{line:194,column:8},end:{line:194,column:102}},"16":{start:{line:205,column:8},end:{line:205,column:105}},"17":{start:{line:211,column:15},end:{line:211,column:33}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:31,column:4},end:{line:31,column:5}},loc:{start:{line:31,column:138},end:{line:33,column:5}},line:31},"1":{name:"(anonymous_1)",decl:{start:{line:41,column:4},end:{line:41,column:5}},loc:{start:{line:41,column:65},end:{line:43,column:5}},line:41},"2":{name:"(anonymous_2)",decl:{start:{line:53,column:4},end:{line:53,column:5}},loc:{start:{line:53,column:78},end:{line:55,column:5}},line:53},"3":{name:"(anonymous_3)",decl:{start:{line:63,column:4},end:{line:63,column:5}},loc:{start:{line:63,column:75},end:{line:65,column:5}},line:63},"4":{name:"(anonymous_4)",decl:{start:{line:74,column:4},end:{line:74,column:5}},loc:{start:{line:74,column:73},end:{line:76,column:5}},line:74},"5":{name:"(anonymous_5)",decl:{start:{line:85,column:4},end:{line:85,column:5}},loc:{start:{line:85,column:75},end:{line:87,column:5}},line:85},"6":{name:"(anonymous_6)",decl:{start:{line:95,column:4},end:{line:95,column:5}},loc:{start:{line:95,column:62},end:{line:97,column:5}},line:95},"7":{name:"(anonymous_7)",decl:{start:{line:106,column:4},end:{line:106,column:5}},loc:{start:{line:106,column:77},end:{line:108,column:5}},line:106},"8":{name:"(anonymous_8)",decl:{start:{line:117,column:4},end:{line:117,column:5}},loc:{start:{line:117,column:73},end:{line:119,column:5}},line:117},"9":{name:"(anonymous_9)",decl:{start:{line:128,column:4},end:{line:128,column:5}},loc:{start:{line:128,column:73},end:{line:130,column:5}},line:128},"10":{name:"(anonymous_10)",decl:{start:{line:139,column:4},end:{line:139,column:5}},loc:{start:{line:139,column:73},end:{line:141,column:5}},line:139},"11":{name:"(anonymous_11)",decl:{start:{line:150,column:4},end:{line:150,column:5}},loc:{start:{line:150,column:73},end:{line:152,column:5}},line:150},"12":{name:"(anonymous_12)",decl:{start:{line:160,column:4},end:{line:160,column:5}},loc:{start:{line:160,column:68},end:{line:162,column:5}},line:160},"13":{name:"(anonymous_13)",decl:{start:{line:171,column:4},end:{line:171,column:5}},loc:{start:{line:171,column:75},end:{line:173,column:5}},line:171},"14":{name:"(anonymous_14)",decl:{start:{line:182,column:4},end:{line:182,column:5}},loc:{start:{line:182,column:80},end:{line:184,column:5}},line:182},"15":{name:"(anonymous_15)",decl:{start:{line:193,column:4},end:{line:193,column:5}},loc:{start:{line:193,column:89},end:{line:195,column:5}},line:193},"16":{name:"(anonymous_16)",decl:{start:{line:204,column:4},end:{line:204,column:5}},loc:{start:{line:204,column:92},end:{line:206,column:5}},line:204}},branchMap:{"0":{loc:{start:{line:31,column:96},end:{line:31,column:112}},type:"default-arg",locations:[{start:{line:31,column:108},end:{line:31,column:112}}],line:31},"1":{loc:{start:{line:31,column:114},end:{line:31,column:136}},type:"default-arg",locations:[{start:{line:31,column:127},end:{line:31,column:136}}],line:31}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0},b:{"0":[0],"1":[0]},inputSourceMap:{version:3,file:"validation.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/validation/validation.ts"],names:[],mappings:"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",sourcesContent:["import * as moment_ from 'moment';\r\n\r\nimport { ValidatorFn } from '@angular/forms';\r\nimport { LanguageModel } from '../models/languagemodel';\r\nimport { emailValidator } from './email.validator';\r\nimport { equalsValueValidator } from './equals.validator';\r\nimport { isValidDateValidator } from './invaliddate.validator';\r\nimport { maxDateValidator } from './maxdate.validator';\r\nimport { maxTimeValidator } from './maxtime.validator';\r\nimport { maxValueValidator } from './maxvalue.validator';\r\nimport { minDateValidator } from './mindate.validator';\r\nimport { minFilesValidator } from './minfiles.validator';\r\nimport { minLengthValidator } from './minlength.validator';\r\nimport { minTimeValidator } from './mintime.validator';\r\nimport { minValueValidator } from './minvalue.validator';\r\nimport { multilanguageRequiredValidator } from './multilanguagerequired.validator';\r\nimport { multilanguageRequiredAnyValidator } from './multilanguagerequiredany.validator';\r\nimport { notEqualsValueValidator } from './notequals.validator';\r\nimport { patternValidator } from './pattern.validator';\r\nimport { requiredValidator } from './required.validator';\r\nimport { CreateValidationError } from './validationerrorcreator';\r\n\r\n/**\r\n * Klasse mit Standard Validatoren\r\n */\r\nexport class Validation {\r\n /**\r\n * Die Methode ist von jedem Validator aufgerufen. Die setzt sowohl den errorType des gerp\xFCfte Item, als auch die ErrorMessage (gem\xE4ss von errorType, FieldName und Parameters).\r\n * @param errorType Typ den Fehler\r\n * @param errorMessageKey Error Message Key\r\n * @param errorMessageValidationSummaryKey Error Message Key f\xFCr Validation Summary\r\n * @param fieldName Label oder Name des Feldes\r\n * @param parameters Parametern die in den Meldungen als Platzhalter verwendet werden k\xF6nnen\r\n */\r\n static GetValidationErrorItem(\r\n errorType: string,\r\n errorMessageKey: string,\r\n errorMessageValidationSummaryKey: string,\r\n fieldName: string = null,\r\n parameters: Map<string, any> = new Map<string, any>()\r\n ): any {\r\n return CreateValidationError(\r\n errorType,\r\n errorMessageKey,\r\n errorMessageValidationSummaryKey,\r\n parameters\r\n );\r\n }\r\n\r\n /**\r\n * Validator f\xFCr Required State\r\n * @param control Control das Validiert wird\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static required(\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return requiredValidator(validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validator validate if value is the requiredValue\r\n * @param requiredValue Value that control should have\r\n * @param control Control to be validate\r\n * @param fieldName Label of control\r\n * @param validationMessage validation message near the control\r\n * @param validationMessageSummary validation inside the validation summary\r\n\r\n */\r\n public static equals(\r\n requiredValue: any,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return equalsValueValidator(\r\n requiredValue,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validator der pr\xFCft ob der Wert ein Datum ist.\r\n * @param control Control mit IDateTimeControl Interface implementierung\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static minValue(\r\n minvalue: number,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return minValueValidator(\r\n minvalue,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validierung mit einem RegEx Pattern\r\n * @param control Control das validiert werden soll.\r\n * @param pattern RegEx Pattern\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static pattern(\r\n pattern: string,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return patternValidator(\r\n pattern,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validator f\xFCr Max Value\r\n * @param control Control das Validiert werden soll\r\n * @param maxvalue Max. Wert\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static maxValue(\r\n maxvalue: number,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return maxValueValidator(\r\n maxvalue,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validiert Feld auf E-Mail Adresse\r\n * @param control Control das Valdiert werden soll\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static email(\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return emailValidator(validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validiert auf die L\xE4nge des Wertes im Control\r\n * @param control Control das Validiert werden soll\r\n * @param minlength Min. L\xE4nge des Wertes\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static minLength(\r\n minlength: number,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return minLengthValidator(\r\n minlength,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validiert ob das Datum neuer als minDate ist\r\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\r\n * @param minDate Min. Datum\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static minDate(\r\n minDate: Date,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return minDateValidator(\r\n minDate,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validiert ob das Datum \xE4lter als maxDate ist\r\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\r\n * @param maxDate max. Datum\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static maxDate(\r\n maxDate: Date,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return maxDateValidator(\r\n maxDate,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validiert ob die Zeit sp\xE4ter als minTime ist.\r\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\r\n * @param minTime Min. Zeit\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static minTime(\r\n minTime: Date,\r\n validationMessage: string,\r\n validationMessageSummary: string\r\n ): ValidatorFn {\r\n return minTimeValidator(\r\n minTime,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validiert ob die Zeit fr\xFCher als maxTime ist.\r\n * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben\r\n * @param maxTime Min. Zeit\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static maxTime(\r\n maxTime: Date,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return maxTimeValidator(\r\n maxTime,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validator der pr\xFCft ob der Wert ein Datum ist.\r\n * @param control Control mit IDateTimeControl Interface implementierung\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die beim Control angezeigt wird\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static isValidDate(\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return isValidDateValidator(validationMessage, validationMessageSummary);\r\n }\r\n\r\n /**\r\n * Validator f\xFCr min. Anzahl von Uploads\r\n * @param control Control das Validatiert werden soll. Control muss IUploadControl implementiert haben\r\n * @param minFiles Min. Anzahl Files die hochgeladen werden m\xFCssen\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static minFiles(\r\n minFiles: number,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return minFilesValidator(\r\n minFiles,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validator validate if value is not the invalidValue\r\n * @param invalidValue Value that control doesn't should have\r\n * @param control Control to be validate\r\n * @param fieldName Label of control\r\n * @param validationMessage validation message near the control\r\n * @param validationMessageSummary validation inside the validation summary\r\n */\r\n public static notequals(\r\n invalidValue: any,\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return notEqualsValueValidator(\r\n invalidValue,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validierung mit einem RegEx Pattern\r\n * @param control Control das validiert werden soll.\r\n * @param pattern RegEx Pattern\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static multilanguageRequired(\r\n languages: LanguageModel[],\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return multilanguageRequiredValidator(\r\n languages,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n\r\n /**\r\n * Validator f\xFCr MultiLanguage Control, welcher \xFCberpr\xFCft ob min. ein Wert erfasst wurde\r\n * @param control Control das Validatiert werden soll\r\n * @param languages Sprachen die im Control erfasst werden k\xF6nnen.\r\n * @param fieldName Label des Controls\r\n * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird\r\n * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird\r\n */\r\n static multilanguageRequiredAny(\r\n languages: LanguageModel[],\r\n validationMessage: string,\r\n validationMessageSummary\r\n ): ValidatorFn {\r\n return multilanguageRequiredAnyValidator(\r\n languages,\r\n validationMessage,\r\n validationMessageSummary\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * Moment\r\n */\r\nconst moment = moment_['default'];\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"cb94a843218a35066202334fa8eea0f0e8911c17"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
2
+ cov_2htktrox8d=function(){return actualCoverage;};}return actualCoverage;}cov_2htktrox8d();import*as moment_ from'moment';import{emailValidator}from'./email.validator';import{equalsValueValidator}from'./equals.validator';import{isValidDateValidator}from'./invaliddate.validator';import{maxDateValidator}from'./maxdate.validator';import{maxTimeValidator}from'./maxtime.validator';import{maxValueValidator}from'./maxvalue.validator';import{minDateValidator}from'./mindate.validator';import{minFilesValidator}from'./minfiles.validator';import{minLengthValidator}from'./minlength.validator';import{minTimeValidator}from'./mintime.validator';import{minValueValidator}from'./minvalue.validator';import{multilanguageRequiredValidator}from'./multilanguagerequired.validator';import{multilanguageRequiredAnyValidator}from'./multilanguagerequiredany.validator';import{notEqualsValueValidator}from'./notequals.validator';import{patternValidator}from'./pattern.validator';import{requiredValidator}from'./required.validator';import{CreateValidationError}from'./validationerrorcreator';/**
5
3
  * Klasse mit Standard Validatoren
6
4
  */export class Validation{/**
7
5
  * Die Methode ist von jedem Validator aufgerufen. Die setzt sowohl den errorType des gerpüfte Item, als auch die ErrorMessage (gemäss von errorType, FieldName und Parameters).
@@ -10,100 +8,116 @@ cov_2htktrox8d=function(){return actualCoverage;};}return actualCoverage;}cov_2h
10
8
  * @param errorMessageValidationSummaryKey Error Message Key für Validation Summary
11
9
  * @param fieldName Label oder Name des Feldes
12
10
  * @param parameters Parametern die in den Meldungen als Platzhalter verwendet werden können
13
- */static GetValidationErrorItem(errorType,errorMessageKey,errorMessageValidationSummaryKey,fieldName=(cov_2htktrox8d().b[0][0]++,null),parameters=(cov_2htktrox8d().b[1][0]++,new Map())){cov_2htktrox8d().f[0]++;cov_2htktrox8d().s[1]++;return CreateValidationError(errorType,errorMessageKey,errorMessageValidationSummaryKey,parameters);}/**
11
+ */static GetValidationErrorItem(errorType,errorMessageKey,errorMessageValidationSummaryKey,fieldName=(cov_2htktrox8d().b[0][0]++,null),parameters=(cov_2htktrox8d().b[1][0]++,new Map())){cov_2htktrox8d().f[0]++;cov_2htktrox8d().s[0]++;return CreateValidationError(errorType,errorMessageKey,errorMessageValidationSummaryKey,parameters);}/**
14
12
  * Validator für Required State
15
13
  * @param control Control das Validiert wird
16
14
  * @param fieldName Label des Controls
17
15
  * @param validationMessage Validierungsmeldung die
18
16
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
19
- */static required(validationMessage,validationMessageSummary){cov_2htktrox8d().f[1]++;cov_2htktrox8d().s[2]++;return requiredValidator(validationMessage,validationMessageSummary);}/**
20
- * Validator für Min Value
21
- * @param control Control das Validiert wird
22
- * @param minvalue Min. Value
17
+ */static required(validationMessage,validationMessageSummary){cov_2htktrox8d().f[1]++;cov_2htktrox8d().s[1]++;return requiredValidator(validationMessage,validationMessageSummary);}/**
18
+ * Validator validate if value is the requiredValue
19
+ * @param requiredValue Value that control should have
20
+ * @param control Control to be validate
21
+ * @param fieldName Label of control
22
+ * @param validationMessage validation message near the control
23
+ * @param validationMessageSummary validation inside the validation summary
24
+
25
+ */static equals(requiredValue,validationMessage,validationMessageSummary){cov_2htktrox8d().f[2]++;cov_2htktrox8d().s[2]++;return equalsValueValidator(requiredValue,validationMessage,validationMessageSummary);}/**
26
+ * Validator der prüft ob der Wert ein Datum ist.
27
+ * @param control Control mit IDateTimeControl Interface implementierung
23
28
  * @param fieldName Label des Controls
24
29
  * @param validationMessage Validierungsmeldung die
25
30
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
26
- */static minValue(minvalue,validationMessage,validationMessageSummary){cov_2htktrox8d().f[2]++;cov_2htktrox8d().s[3]++;return minValueValidator(minvalue,validationMessage,validationMessageSummary);}/**
31
+ */static minValue(minvalue,validationMessage,validationMessageSummary){cov_2htktrox8d().f[3]++;cov_2htktrox8d().s[3]++;return minValueValidator(minvalue,validationMessage,validationMessageSummary);}/**
27
32
  * Validierung mit einem RegEx Pattern
28
33
  * @param control Control das validiert werden soll.
29
34
  * @param pattern RegEx Pattern
30
35
  * @param fieldName Label des Controls
31
36
  * @param validationMessage Validierungsmeldung die
32
37
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
33
- */static pattern(pattern,validationMessage,validationMessageSummary){cov_2htktrox8d().f[3]++;cov_2htktrox8d().s[4]++;return patternValidator(pattern,validationMessage,validationMessageSummary);}/**
38
+ */static pattern(pattern,validationMessage,validationMessageSummary){cov_2htktrox8d().f[4]++;cov_2htktrox8d().s[4]++;return patternValidator(pattern,validationMessage,validationMessageSummary);}/**
34
39
  * Validator für Max Value
35
40
  * @param control Control das Validiert werden soll
36
41
  * @param maxvalue Max. Wert
37
42
  * @param fieldName Label des Controls
38
43
  * @param validationMessage Validierungsmeldung die
39
44
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
40
- */static maxValue(maxvalue,validationMessage,validationMessageSummary){cov_2htktrox8d().f[4]++;cov_2htktrox8d().s[5]++;return maxValueValidator(maxvalue,validationMessage,validationMessageSummary);}/**
45
+ */static maxValue(maxvalue,validationMessage,validationMessageSummary){cov_2htktrox8d().f[5]++;cov_2htktrox8d().s[5]++;return maxValueValidator(maxvalue,validationMessage,validationMessageSummary);}/**
41
46
  * Validiert Feld auf E-Mail Adresse
42
47
  * @param control Control das Valdiert werden soll
43
48
  * @param fieldName Label des Controls
44
49
  * @param validationMessage Validierungsmeldung die
45
50
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
46
- */static email(validationMessage,validationMessageSummary){cov_2htktrox8d().f[5]++;cov_2htktrox8d().s[6]++;return emailValidator(validationMessage,validationMessageSummary);}/**
51
+ */static email(validationMessage,validationMessageSummary){cov_2htktrox8d().f[6]++;cov_2htktrox8d().s[6]++;return emailValidator(validationMessage,validationMessageSummary);}/**
47
52
  * Validiert auf die Länge des Wertes im Control
48
53
  * @param control Control das Validiert werden soll
49
54
  * @param minlength Min. Länge des Wertes
50
55
  * @param fieldName Label des Controls
51
56
  * @param validationMessage Validierungsmeldung die
52
57
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
53
- */static minLength(minlength,validationMessage,validationMessageSummary){cov_2htktrox8d().f[6]++;cov_2htktrox8d().s[7]++;return minLengthValidator(minlength,validationMessage,validationMessageSummary);}/**
58
+ */static minLength(minlength,validationMessage,validationMessageSummary){cov_2htktrox8d().f[7]++;cov_2htktrox8d().s[7]++;return minLengthValidator(minlength,validationMessage,validationMessageSummary);}/**
54
59
  * Validiert ob das Datum neuer als minDate ist
55
60
  * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben
56
61
  * @param minDate Min. Datum
57
62
  * @param fieldName Label des Controls
58
63
  * @param validationMessage Validierungsmeldung die
59
64
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
60
- */static minDate(minDate,validationMessage,validationMessageSummary){cov_2htktrox8d().f[7]++;cov_2htktrox8d().s[8]++;return minDateValidator(minDate,validationMessage,validationMessageSummary);}/**
65
+ */static minDate(minDate,validationMessage,validationMessageSummary){cov_2htktrox8d().f[8]++;cov_2htktrox8d().s[8]++;return minDateValidator(minDate,validationMessage,validationMessageSummary);}/**
61
66
  * Validiert ob das Datum älter als maxDate ist
62
67
  * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben
63
68
  * @param maxDate max. Datum
64
69
  * @param fieldName Label des Controls
65
70
  * @param validationMessage Validierungsmeldung die
66
71
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
67
- */static maxDate(maxDate,validationMessage,validationMessageSummary){cov_2htktrox8d().f[8]++;cov_2htktrox8d().s[9]++;return maxDateValidator(maxDate,validationMessage,validationMessageSummary);}/**
72
+ */static maxDate(maxDate,validationMessage,validationMessageSummary){cov_2htktrox8d().f[9]++;cov_2htktrox8d().s[9]++;return maxDateValidator(maxDate,validationMessage,validationMessageSummary);}/**
68
73
  * Validiert ob die Zeit später als minTime ist.
69
74
  * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben
70
75
  * @param minTime Min. Zeit
71
76
  * @param fieldName Label des Controls
72
77
  * @param validationMessage Validierungsmeldung die
73
78
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
74
- */static minTime(minTime,validationMessage,validationMessageSummary){cov_2htktrox8d().f[9]++;cov_2htktrox8d().s[10]++;return minTimeValidator(minTime,validationMessage,validationMessageSummary);}/**
79
+ */static minTime(minTime,validationMessage,validationMessageSummary){cov_2htktrox8d().f[10]++;cov_2htktrox8d().s[10]++;return minTimeValidator(minTime,validationMessage,validationMessageSummary);}/**
75
80
  * Validiert ob die Zeit früher als maxTime ist.
76
81
  * @param control Control das Validiert werden soll. Muss IDateTimeControl implementiert haben
77
82
  * @param maxTime Min. Zeit
78
83
  * @param fieldName Label des Controls
79
84
  * @param validationMessage Validierungsmeldung die
80
85
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
81
- */static maxTime(maxTime,validationMessage,validationMessageSummary){cov_2htktrox8d().f[10]++;cov_2htktrox8d().s[11]++;return maxTimeValidator(maxTime,validationMessage,validationMessageSummary);}/**
86
+ */static maxTime(maxTime,validationMessage,validationMessageSummary){cov_2htktrox8d().f[11]++;cov_2htktrox8d().s[11]++;return maxTimeValidator(maxTime,validationMessage,validationMessageSummary);}/**
82
87
  * Validator der prüft ob der Wert ein Datum ist.
83
88
  * @param control Control mit IDateTimeControl Interface implementierung
84
89
  * @param fieldName Label des Controls
85
90
  * @param validationMessage Validierungsmeldung die beim Control angezeigt wird
86
91
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
87
- */static isValidDate(validationMessage,validationMessageSummary){cov_2htktrox8d().f[11]++;cov_2htktrox8d().s[12]++;return isValidDateValidator(validationMessage,validationMessageSummary);}/**
92
+ */static isValidDate(validationMessage,validationMessageSummary){cov_2htktrox8d().f[12]++;cov_2htktrox8d().s[12]++;return isValidDateValidator(validationMessage,validationMessageSummary);}/**
88
93
  * Validator für min. Anzahl von Uploads
89
94
  * @param control Control das Validatiert werden soll. Control muss IUploadControl implementiert haben
90
95
  * @param minFiles Min. Anzahl Files die hochgeladen werden müssen
91
96
  * @param fieldName Label des Controls
92
97
  * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird
93
98
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
94
- */static minFiles(minFiles,validationMessage,validationMessageSummary){cov_2htktrox8d().f[12]++;cov_2htktrox8d().s[13]++;return minFilesValidator(minFiles,validationMessage,validationMessageSummary);}/**
95
- * Validator für MultiLanguage Control, welcher überprüft ob alle Sprachen erfasst sind.
96
- * @param control Control das Validatiert werden soll
97
- * @param languages Sprachen die im Control erfasst werden können.
99
+ */static minFiles(minFiles,validationMessage,validationMessageSummary){cov_2htktrox8d().f[13]++;cov_2htktrox8d().s[13]++;return minFilesValidator(minFiles,validationMessage,validationMessageSummary);}/**
100
+ * Validator validate if value is not the invalidValue
101
+ * @param invalidValue Value that control doesn't should have
102
+ * @param control Control to be validate
103
+ * @param fieldName Label of control
104
+ * @param validationMessage validation message near the control
105
+ * @param validationMessageSummary validation inside the validation summary
106
+ */static notequals(invalidValue,validationMessage,validationMessageSummary){cov_2htktrox8d().f[14]++;cov_2htktrox8d().s[14]++;return notEqualsValueValidator(invalidValue,validationMessage,validationMessageSummary);}/**
107
+ * Validierung mit einem RegEx Pattern
108
+ * @param control Control das validiert werden soll.
109
+ * @param pattern RegEx Pattern
98
110
  * @param fieldName Label des Controls
99
111
  * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird
100
112
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
101
- */static multilanguageRequired(languages,validationMessage,validationMessageSummary){cov_2htktrox8d().f[13]++;cov_2htktrox8d().s[14]++;return multilanguageRequiredValidator(languages,validationMessage,validationMessageSummary);}/**
113
+ */static multilanguageRequired(languages,validationMessage,validationMessageSummary){cov_2htktrox8d().f[15]++;cov_2htktrox8d().s[15]++;return multilanguageRequiredValidator(languages,validationMessage,validationMessageSummary);}/**
102
114
  * Validator für MultiLanguage Control, welcher überprüft ob min. ein Wert erfasst wurde
103
115
  * @param control Control das Validatiert werden soll
104
116
  * @param languages Sprachen die im Control erfasst werden können.
105
117
  * @param fieldName Label des Controls
106
118
  * @param validationMessage Validierungsmeldung die unterhalb des Controls angezeigt wird
107
119
  * @param validationMessageSummary Validierungsmeldung die im Validation Summary angezeigt wird
108
- */static multilanguageRequiredAny(languages,validationMessage,validationMessageSummary){cov_2htktrox8d().f[14]++;cov_2htktrox8d().s[15]++;return multilanguageRequiredAnyValidator(languages,validationMessage,validationMessageSummary);}}//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUVsQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQ7O0dBRUc7QUFDSCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMs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OztPQU9HO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FDYixRQUFnQixFQUNoQixpQkFBeUIsRUFDekIsd0JBQXdCO1FBRXhCLE9BQU8saUJBQWlCLENBQ3RCLFFBQVEsRUFDUixpQkFBaUIsRUFDakIsd0JBQXdCLENBQ3pCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxxQkFBcUIsQ0FDMUIsU0FBMEIsRUFDMUIsaUJBQXlCLEVBQ3pCLHdCQUF3QjtRQUV4QixPQUFPLDhCQUE4QixDQUNuQyxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHdCQUF3QixDQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsd0JBQXdCLENBQzdCLFNBQTBCLEVBQzFCLGlCQUF5QixFQUN6Qix3QkFBd0I7UUFFeEIsT0FBTyxpQ0FBaUMsQ0FDdEMsU0FBUyxFQUNULGlCQUFpQixFQUNqQix3QkFBd0IsQ0FDekIsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IExhbmd1YWdlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvbGFuZ3VhZ2Vtb2RlbCc7XHJcbmltcG9ydCB7IGlzVmFsaWREYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi9pbnZhbGlkZGF0ZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtYXhEYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXhkYXRlLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1heFRpbWVWYWxpZGF0b3IgfSBmcm9tICcuL21heHRpbWUudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbWF4VmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL21heHZhbHVlLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1pbkRhdGVWYWxpZGF0b3IgfSBmcm9tICcuL21pbmRhdGUudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbWluRmlsZXNWYWxpZGF0b3IgfSBmcm9tICcuL21pbmZpbGVzLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1pbkxlbmd0aFZhbGlkYXRvciB9IGZyb20gJy4vbWlubGVuZ3RoLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1pblRpbWVWYWxpZGF0b3IgfSBmcm9tICcuL21pbnRpbWUudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbWluVmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL21pbnZhbHVlLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG11bHRpbGFuZ3VhZ2VSZXF1aXJlZFZhbGlkYXRvciB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZXJlcXVpcmVkLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueVZhbGlkYXRvciB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZXJlcXVpcmVkYW55LnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHBhdHRlcm5WYWxpZGF0b3IgfSBmcm9tICcuL3BhdHRlcm4udmFsaWRhdG9yJztcclxuaW1wb3J0IHsgcmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tICcuL3JlcXVpcmVkLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IENyZWF0ZVZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vdmFsaWRhdGlvbmVycm9yY3JlYXRvcic7XHJcbmltcG9ydCB7IGVtYWlsVmFsaWRhdG9yIH0gZnJvbSAnLi9lbWFpbC52YWxpZGF0b3InO1xyXG4vKipcclxuICogTW9tZW50XHJcbiAqL1xyXG5jb25zdCBtb21lbnQgPSBtb21lbnRfWydkZWZhdWx0J107XHJcblxyXG4vKipcclxuICogS2xhc3NlIG1pdCBTdGFuZGFyZCBWYWxpZGF0b3JlblxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb24ge1xyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIGlzdCB2b24gamVkZW0gVmFsaWRhdG9yIGF1ZmdlcnVmZW4uIERpZSBzZXR6dCBzb3dvaGwgZGVuIGVycm9yVHlwZSBkZXMgZ2VycMO8ZnRlIEl0ZW0sIGFscyBhdWNoIGRpZSBFcnJvck1lc3NhZ2UgKGdlbcOkc3Mgdm9uIGVycm9yVHlwZSwgRmllbGROYW1lIHVuZCBQYXJhbWV0ZXJzKS5cclxuICAgKiBAcGFyYW0gZXJyb3JUeXBlIFR5cCBkZW4gRmVobGVyXHJcbiAgICogQHBhcmFtIGVycm9yTWVzc2FnZUtleSBFcnJvciBNZXNzYWdlIEtleVxyXG4gICAqIEBwYXJhbSBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSBFcnJvciBNZXNzYWdlIEtleSBmw7xyIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgIExhYmVsIG9kZXIgTmFtZSBkZXMgRmVsZGVzXHJcbiAgICogQHBhcmFtIHBhcmFtZXRlcnMgUGFyYW1ldGVybiBkaWUgaW4gZGVuIE1lbGR1bmdlbiBhbHMgUGxhdHpoYWx0ZXIgdmVyd2VuZGV0IHdlcmRlbiBrw7ZubmVuXHJcbiAgICovXHJcbiAgc3RhdGljIEdldFZhbGlkYXRpb25FcnJvckl0ZW0oXHJcbiAgICBlcnJvclR5cGU6IHN0cmluZyxcclxuICAgIGVycm9yTWVzc2FnZUtleTogc3RyaW5nLFxyXG4gICAgZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXk6IHN0cmluZyxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nID0gbnVsbCxcclxuICAgIHBhcmFtZXRlcnM6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwPHN0cmluZywgYW55PigpXHJcbiAgKTogYW55IHtcclxuICAgIHJldHVybiBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoXHJcbiAgICAgIGVycm9yVHlwZSxcclxuICAgICAgZXJyb3JNZXNzYWdlS2V5LFxyXG4gICAgICBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSxcclxuICAgICAgcGFyYW1ldGVyc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciBmw7xyIFJlcXVpcmVkIFN0YXRlXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdpcmRcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIHJlcXVpcmVkKFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiByZXF1aXJlZFZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciBmw7xyIE1pbiBWYWx1ZVxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3aXJkXHJcbiAgICogQHBhcmFtIG1pbnZhbHVlIE1pbi4gVmFsdWVcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pblZhbHVlKFxyXG4gICAgbWludmFsdWU6IG51bWJlcixcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbWluVmFsdWVWYWxpZGF0b3IoXHJcbiAgICAgIG1pbnZhbHVlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ1bmcgbWl0IGVpbmVtIFJlZ0V4IFBhdHRlcm5cclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyB2YWxpZGllcnQgd2VyZGVuIHNvbGwuXHJcbiAgICogQHBhcmFtIHBhdHRlcm4gUmVnRXggUGF0dGVyblxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgKi9cclxuICBzdGF0aWMgcGF0dGVybihcclxuICAgIHBhdHRlcm46IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gcGF0dGVyblZhbGlkYXRvcihcclxuICAgICAgcGF0dGVybixcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciBmw7xyIE1heCBWYWx1ZVxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbFxyXG4gICAqIEBwYXJhbSBtYXh2YWx1ZSBNYXguIFdlcnRcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1heFZhbHVlKFxyXG4gICAgbWF4dmFsdWU6IG51bWJlcixcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbWF4VmFsdWVWYWxpZGF0b3IoXHJcbiAgICAgIG1heHZhbHVlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IEZlbGQgYXVmIEUtTWFpbCBBZHJlc3NlXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsZGllcnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIGVtYWlsKFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBlbWFpbFZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydCBhdWYgZGllIEzDpG5nZSBkZXMgV2VydGVzIGltIENvbnRyb2xcclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gbWlubGVuZ3RoIE1pbi4gTMOkbmdlIGRlcyBXZXJ0ZXNcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pbkxlbmd0aChcclxuICAgIG1pbmxlbmd0aDogbnVtYmVyLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtaW5MZW5ndGhWYWxpZGF0b3IoXHJcbiAgICAgIG1pbmxlbmd0aCxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydCBvYiBkYXMgRGF0dW0gbmV1ZXIgYWxzIG1pbkRhdGUgaXN0XHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsLiBNdXNzIElEYXRlVGltZUNvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxyXG4gICAqIEBwYXJhbSBtaW5EYXRlIE1pbi4gRGF0dW1cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pbkRhdGUoXHJcbiAgICBtaW5EYXRlOiBEYXRlLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtaW5EYXRlVmFsaWRhdG9yKFxyXG4gICAgICBtaW5EYXRlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IG9iIGRhcyBEYXR1bSDDpGx0ZXIgYWxzIG1heERhdGUgaXN0XHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsLiBNdXNzIElEYXRlVGltZUNvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxyXG4gICAqIEBwYXJhbSBtYXhEYXRlIG1heC4gRGF0dW1cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1heERhdGUoXHJcbiAgICBtYXhEYXRlOiBEYXRlLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtYXhEYXRlVmFsaWRhdG9yKFxyXG4gICAgICBtYXhEYXRlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IG9iIGRpZSBaZWl0IHNww6R0ZXIgYWxzIG1pblRpbWUgaXN0LlxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbC4gTXVzcyBJRGF0ZVRpbWVDb250cm9sIGltcGxlbWVudGllcnQgaGFiZW5cclxuICAgKiBAcGFyYW0gbWluVGltZSBNaW4uIFplaXRcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pblRpbWUoXHJcbiAgICBtaW5UaW1lOiBEYXRlLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeTogc3RyaW5nXHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG1pblRpbWVWYWxpZGF0b3IoXHJcbiAgICAgIG1pblRpbWUsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGllcnQgb2IgZGllIFplaXQgZnLDvGhlciBhbHMgbWF4VGltZSBpc3QuXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsLiBNdXNzIElEYXRlVGltZUNvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxyXG4gICAqIEBwYXJhbSBtYXhUaW1lIE1pbi4gWmVpdFxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgKi9cclxuICBzdGF0aWMgbWF4VGltZShcclxuICAgIG1heFRpbWU6IERhdGUsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG1heFRpbWVWYWxpZGF0b3IoXHJcbiAgICAgIG1heFRpbWUsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0b3IgZGVyIHByw7xmdCBvYiBkZXIgV2VydCBlaW4gRGF0dW0gaXN0LlxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgbWl0IElEYXRlVGltZUNvbnRyb2wgSW50ZXJmYWNlIGltcGxlbWVudGllcnVuZ1xyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGJlaW0gQ29udHJvbCBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIGlzVmFsaWREYXRlKFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBpc1ZhbGlkRGF0ZVZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciBmw7xyIG1pbi4gQW56YWhsIHZvbiBVcGxvYWRzXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRhdGllcnQgd2VyZGVuIHNvbGwuIENvbnRyb2wgbXVzcyBJVXBsb2FkQ29udHJvbCBpbXBsZW1lbnRpZXJ0IGhhYmVuXHJcbiAgICogQHBhcmFtIG1pbkZpbGVzIE1pbi4gQW56YWhsIEZpbGVzIGRpZSBob2NoZ2VsYWRlbiB3ZXJkZW4gbcO8c3NlblxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIHVudGVyaGFsYiBkZXMgQ29udHJvbHMgYW5nZXplaWd0IHdpcmRcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyBtaW5GaWxlcyhcclxuICAgIG1pbkZpbGVzOiBudW1iZXIsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG1pbkZpbGVzVmFsaWRhdG9yKFxyXG4gICAgICBtaW5GaWxlcyxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciBmw7xyIE11bHRpTGFuZ3VhZ2UgQ29udHJvbCwgd2VsY2hlciDDvGJlcnByw7xmdCBvYiBhbGxlIFNwcmFjaGVuIGVyZmFzc3Qgc2luZC5cclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGF0aWVydCB3ZXJkZW4gc29sbFxyXG4gICAqIEBwYXJhbSBsYW5ndWFnZXMgU3ByYWNoZW4gZGllIGltIENvbnRyb2wgZXJmYXNzdCB3ZXJkZW4ga8O2bm5lbi5cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSB1bnRlcmhhbGIgZGVzIENvbnRyb2xzIGFuZ2V6ZWlndCB3aXJkXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgKi9cclxuICBzdGF0aWMgbXVsdGlsYW5ndWFnZVJlcXVpcmVkKFxyXG4gICAgbGFuZ3VhZ2VzOiBMYW5ndWFnZU1vZGVsW10sXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG11bHRpbGFuZ3VhZ2VSZXF1aXJlZFZhbGlkYXRvcihcclxuICAgICAgbGFuZ3VhZ2VzLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdG9yIGbDvHIgTXVsdGlMYW5ndWFnZSBDb250cm9sLCB3ZWxjaGVyIMO8YmVycHLDvGZ0IG9iIG1pbi4gZWluIFdlcnQgZXJmYXNzdCB3dXJkZVxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkYXRpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICogQHBhcmFtIGxhbmd1YWdlcyBTcHJhY2hlbiBkaWUgaW0gQ29udHJvbCBlcmZhc3N0IHdlcmRlbiBrw7ZubmVuLlxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIHVudGVyaGFsYiBkZXMgQ29udHJvbHMgYW5nZXplaWd0IHdpcmRcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnkoXHJcbiAgICBsYW5ndWFnZXM6IExhbmd1YWdlTW9kZWxbXSxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55VmFsaWRhdG9yKFxyXG4gICAgICBsYW5ndWFnZXMsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
109
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMmh0a3Ryb3g4ZCIsImFjdHVhbENvdmVyYWdlIiwibW9tZW50XyIsImlzVmFsaWREYXRlVmFsaWRhdG9yIiwibWF4RGF0ZVZhbGlkYXRvciIsIm1heFRpbWVWYWxpZGF0b3IiLCJtYXhWYWx1ZVZhbGlkYXRvciIsIm1pbkRhdGVWYWxpZGF0b3IiLCJtaW5GaWxlc1ZhbGlkYXRvciIsIm1pbkxlbmd0aFZhbGlkYXRvciIsIm1pblRpbWVWYWxpZGF0b3IiLCJtaW5WYWx1ZVZhbGlkYXRvciIsIm11bHRpbGFuZ3VhZ2VSZXF1aXJlZFZhbGlkYXRvciIsIm11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueVZhbGlkYXRvciIsInBhdHRlcm5WYWxpZGF0b3IiLCJyZXF1aXJlZFZhbGlkYXRvciIsIkNyZWF0ZVZhbGlkYXRpb25FcnJvciIsImVtYWlsVmFsaWRhdG9yIiwibW9tZW50IiwicyIsIlZhbGlkYXRpb24iLCJHZXRWYWxpZGF0aW9uRXJyb3JJdGVtIiwiZXJyb3JUeXBlIiwiZXJyb3JNZXNzYWdlS2V5IiwiZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXkiLCJmaWVsZE5hbWUiLCJiIiwicGFyYW1ldGVycyIsIk1hcCIsImYiLCJyZXF1aXJlZCIsInZhbGlkYXRpb25NZXNzYWdlIiwidmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IiwibWluVmFsdWUiLCJtaW52YWx1ZSIsInBhdHRlcm4iLCJtYXhWYWx1ZSIsIm1heHZhbHVlIiwiZW1haWwiLCJtaW5MZW5ndGgiLCJtaW5sZW5ndGgiLCJtaW5EYXRlIiwibWF4RGF0ZSIsIm1pblRpbWUiLCJtYXhUaW1lIiwiaXNWYWxpZERhdGUiLCJtaW5GaWxlcyIsIm11bHRpbGFuZ3VhZ2VSZXF1aXJlZCIsImxhbmd1YWdlcyIsIm11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBMYW5ndWFnZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2xhbmd1YWdlbW9kZWwnO1xyXG5pbXBvcnQgeyBpc1ZhbGlkRGF0ZVZhbGlkYXRvciB9IGZyb20gJy4vaW52YWxpZGRhdGUudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbWF4RGF0ZVZhbGlkYXRvciB9IGZyb20gJy4vbWF4ZGF0ZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtYXhUaW1lVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXh0aW1lLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1heFZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXh2YWx1ZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtaW5EYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi9taW5kYXRlLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1pbkZpbGVzVmFsaWRhdG9yIH0gZnJvbSAnLi9taW5maWxlcy52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtaW5MZW5ndGhWYWxpZGF0b3IgfSBmcm9tICcuL21pbmxlbmd0aC52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtaW5UaW1lVmFsaWRhdG9yIH0gZnJvbSAnLi9taW50aW1lLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1pblZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi9taW52YWx1ZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VyZXF1aXJlZC52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnlWYWxpZGF0b3IgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VyZXF1aXJlZGFueS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBwYXR0ZXJuVmFsaWRhdG9yIH0gZnJvbSAnLi9wYXR0ZXJuLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHJlcXVpcmVkVmFsaWRhdG9yIH0gZnJvbSAnLi9yZXF1aXJlZC52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBDcmVhdGVWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuL3ZhbGlkYXRpb25lcnJvcmNyZWF0b3InO1xyXG5pbXBvcnQgeyBlbWFpbFZhbGlkYXRvciB9IGZyb20gJy4vZW1haWwudmFsaWRhdG9yJztcclxuLyoqXHJcbiAqIE1vbWVudFxyXG4gKi9cclxuY29uc3QgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xyXG5cclxuLyoqXHJcbiAqIEtsYXNzZSBtaXQgU3RhbmRhcmQgVmFsaWRhdG9yZW5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uIHtcclxuICAvKipcclxuICAgKiBEaWUgTWV0aG9kZSBpc3Qgdm9uIGplZGVtIFZhbGlkYXRvciBhdWZnZXJ1ZmVuLiBEaWUgc2V0enQgc293b2hsIGRlbiBlcnJvclR5cGUgZGVzIGdlcnDDvGZ0ZSBJdGVtLCBhbHMgYXVjaCBkaWUgRXJyb3JNZXNzYWdlIChnZW3DpHNzIHZvbiBlcnJvclR5cGUsIEZpZWxkTmFtZSB1bmQgUGFyYW1ldGVycykuXHJcbiAgICogQHBhcmFtIGVycm9yVHlwZSBUeXAgZGVuIEZlaGxlclxyXG4gICAqIEBwYXJhbSBlcnJvck1lc3NhZ2VLZXkgRXJyb3IgTWVzc2FnZSBLZXlcclxuICAgKiBAcGFyYW0gZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXkgRXJyb3IgTWVzc2FnZSBLZXkgZsO8ciBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgKiBAcGFyYW0gZmllbGROYW1lICBMYWJlbCBvZGVyIE5hbWUgZGVzIEZlbGRlc1xyXG4gICAqIEBwYXJhbSBwYXJhbWV0ZXJzIFBhcmFtZXRlcm4gZGllIGluIGRlbiBNZWxkdW5nZW4gYWxzIFBsYXR6aGFsdGVyIHZlcndlbmRldCB3ZXJkZW4ga8O2bm5lblxyXG4gICAqL1xyXG4gIHN0YXRpYyBHZXRWYWxpZGF0aW9uRXJyb3JJdGVtKFxyXG4gICAgZXJyb3JUeXBlOiBzdHJpbmcsXHJcbiAgICBlcnJvck1lc3NhZ2VLZXk6IHN0cmluZyxcclxuICAgIGVycm9yTWVzc2FnZVZhbGlkYXRpb25TdW1tYXJ5S2V5OiBzdHJpbmcsXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZyA9IG51bGwsXHJcbiAgICBwYXJhbWV0ZXJzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKVxyXG4gICk6IGFueSB7XHJcbiAgICByZXR1cm4gQ3JlYXRlVmFsaWRhdGlvbkVycm9yKFxyXG4gICAgICBlcnJvclR5cGUsXHJcbiAgICAgIGVycm9yTWVzc2FnZUtleSxcclxuICAgICAgZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXksXHJcbiAgICAgIHBhcmFtZXRlcnNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0b3IgZsO8ciBSZXF1aXJlZCBTdGF0ZVxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3aXJkXHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyByZXF1aXJlZChcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gcmVxdWlyZWRWYWxpZGF0b3IodmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0b3IgZsO8ciBNaW4gVmFsdWVcclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2lyZFxyXG4gICAqIEBwYXJhbSBtaW52YWx1ZSBNaW4uIFZhbHVlXHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyBtaW5WYWx1ZShcclxuICAgIG1pbnZhbHVlOiBudW1iZXIsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG1pblZhbHVlVmFsaWRhdG9yKFxyXG4gICAgICBtaW52YWx1ZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydW5nIG1pdCBlaW5lbSBSZWdFeCBQYXR0ZXJuXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgdmFsaWRpZXJ0IHdlcmRlbiBzb2xsLlxyXG4gICAqIEBwYXJhbSBwYXR0ZXJuIFJlZ0V4IFBhdHRlcm5cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIHBhdHRlcm4oXHJcbiAgICBwYXR0ZXJuOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIHBhdHRlcm5WYWxpZGF0b3IoXHJcbiAgICAgIHBhdHRlcm4sXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0b3IgZsO8ciBNYXggVmFsdWVcclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gbWF4dmFsdWUgTWF4LiBXZXJ0XHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyBtYXhWYWx1ZShcclxuICAgIG1heHZhbHVlOiBudW1iZXIsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG1heFZhbHVlVmFsaWRhdG9yKFxyXG4gICAgICBtYXh2YWx1ZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydCBGZWxkIGF1ZiBFLU1haWwgQWRyZXNzZVxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGRpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyBlbWFpbChcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gZW1haWxWYWxpZGF0b3IodmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGllcnQgYXVmIGRpZSBMw6RuZ2UgZGVzIFdlcnRlcyBpbSBDb250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICogQHBhcmFtIG1pbmxlbmd0aCBNaW4uIEzDpG5nZSBkZXMgV2VydGVzXHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyBtaW5MZW5ndGgoXHJcbiAgICBtaW5sZW5ndGg6IG51bWJlcixcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbWluTGVuZ3RoVmFsaWRhdG9yKFxyXG4gICAgICBtaW5sZW5ndGgsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGllcnQgb2IgZGFzIERhdHVtIG5ldWVyIGFscyBtaW5EYXRlIGlzdFxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbC4gTXVzcyBJRGF0ZVRpbWVDb250cm9sIGltcGxlbWVudGllcnQgaGFiZW5cclxuICAgKiBAcGFyYW0gbWluRGF0ZSBNaW4uIERhdHVtXHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyBtaW5EYXRlKFxyXG4gICAgbWluRGF0ZTogRGF0ZSxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbWluRGF0ZVZhbGlkYXRvcihcclxuICAgICAgbWluRGF0ZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydCBvYiBkYXMgRGF0dW0gw6RsdGVyIGFscyBtYXhEYXRlIGlzdFxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbC4gTXVzcyBJRGF0ZVRpbWVDb250cm9sIGltcGxlbWVudGllcnQgaGFiZW5cclxuICAgKiBAcGFyYW0gbWF4RGF0ZSBtYXguIERhdHVtXHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyBtYXhEYXRlKFxyXG4gICAgbWF4RGF0ZTogRGF0ZSxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbWF4RGF0ZVZhbGlkYXRvcihcclxuICAgICAgbWF4RGF0ZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydCBvYiBkaWUgWmVpdCBzcMOkdGVyIGFscyBtaW5UaW1lIGlzdC5cclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGwuIE11c3MgSURhdGVUaW1lQ29udHJvbCBpbXBsZW1lbnRpZXJ0IGhhYmVuXHJcbiAgICogQHBhcmFtIG1pblRpbWUgTWluLiBaZWl0XHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWVcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyBtaW5UaW1lKFxyXG4gICAgbWluVGltZTogRGF0ZSxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnk6IHN0cmluZ1xyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtaW5UaW1lVmFsaWRhdG9yKFxyXG4gICAgICBtaW5UaW1lLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IG9iIGRpZSBaZWl0IGZyw7xoZXIgYWxzIG1heFRpbWUgaXN0LlxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbC4gTXVzcyBJRGF0ZVRpbWVDb250cm9sIGltcGxlbWVudGllcnQgaGFiZW5cclxuICAgKiBAcGFyYW0gbWF4VGltZSBNaW4uIFplaXRcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1heFRpbWUoXHJcbiAgICBtYXhUaW1lOiBEYXRlLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtYXhUaW1lVmFsaWRhdG9yKFxyXG4gICAgICBtYXhUaW1lLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdG9yIGRlciBwcsO8ZnQgb2IgZGVyIFdlcnQgZWluIERhdHVtIGlzdC5cclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIG1pdCBJRGF0ZVRpbWVDb250cm9sIEludGVyZmFjZSBpbXBsZW1lbnRpZXJ1bmdcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBiZWltIENvbnRyb2wgYW5nZXplaWd0IHdpcmRcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyBpc1ZhbGlkRGF0ZShcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gaXNWYWxpZERhdGVWYWxpZGF0b3IodmFsaWRhdGlvbk1lc3NhZ2UsIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0b3IgZsO8ciBtaW4uIEFuemFobCB2b24gVXBsb2Fkc1xyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkYXRpZXJ0IHdlcmRlbiBzb2xsLiBDb250cm9sIG11c3MgSVVwbG9hZENvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxyXG4gICAqIEBwYXJhbSBtaW5GaWxlcyBNaW4uIEFuemFobCBGaWxlcyBkaWUgaG9jaGdlbGFkZW4gd2VyZGVuIG3DvHNzZW5cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSB1bnRlcmhhbGIgZGVzIENvbnRyb2xzIGFuZ2V6ZWlndCB3aXJkXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgKi9cclxuICBzdGF0aWMgbWluRmlsZXMoXHJcbiAgICBtaW5GaWxlczogbnVtYmVyLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtaW5GaWxlc1ZhbGlkYXRvcihcclxuICAgICAgbWluRmlsZXMsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0b3IgZsO8ciBNdWx0aUxhbmd1YWdlIENvbnRyb2wsIHdlbGNoZXIgw7xiZXJwcsO8ZnQgb2IgYWxsZSBTcHJhY2hlbiBlcmZhc3N0IHNpbmQuXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRhdGllcnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gbGFuZ3VhZ2VzIFNwcmFjaGVuIGRpZSBpbSBDb250cm9sIGVyZmFzc3Qgd2VyZGVuIGvDtm5uZW4uXHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBkZXMgQ29udHJvbHNcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgdW50ZXJoYWxiIGRlcyBDb250cm9scyBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG11bHRpbGFuZ3VhZ2VSZXF1aXJlZChcclxuICAgIGxhbmd1YWdlczogTGFuZ3VhZ2VNb2RlbFtdLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IoXHJcbiAgICAgIGxhbmd1YWdlcyxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciBmw7xyIE11bHRpTGFuZ3VhZ2UgQ29udHJvbCwgd2VsY2hlciDDvGJlcnByw7xmdCBvYiBtaW4uIGVpbiBXZXJ0IGVyZmFzc3Qgd3VyZGVcclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGF0aWVydCB3ZXJkZW4gc29sbFxyXG4gICAqIEBwYXJhbSBsYW5ndWFnZXMgU3ByYWNoZW4gZGllIGltIENvbnRyb2wgZXJmYXNzdCB3ZXJkZW4ga8O2bm5lbi5cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSB1bnRlcmhhbGIgZGVzIENvbnRyb2xzIGFuZ2V6ZWlndCB3aXJkXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgKi9cclxuICBzdGF0aWMgbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55KFxyXG4gICAgbGFuZ3VhZ2VzOiBMYW5ndWFnZU1vZGVsW10sXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG11bHRpbGFuZ3VhZ2VSZXF1aXJlZEFueVZhbGlkYXRvcihcclxuICAgICAgbGFuZ3VhZ2VzLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiJzamxCQWlCUztBQUFBQSxjQUFBLFNBQUFBLENBQUEsU0FBQUMsY0FBQSxXQUFBQSxjQUFBLEVBQUFELGNBQUEsR0FoQlQsTUFBTyxHQUFLLENBQUFFLE9BQU8sS0FBTSxRQUFRLENBRWpDLE9BQVNDLG9CQUFvQixLQUFRLHlCQUF5QixDQUM5RCxPQUFTQyxnQkFBZ0IsS0FBUSxxQkFBcUIsQ0FDdEQsT0FBU0MsZ0JBQWdCLEtBQVEscUJBQXFCLENBQ3RELE9BQVNDLGlCQUFpQixLQUFRLHNCQUFzQixDQUN4RCxPQUFTQyxnQkFBZ0IsS0FBUSxxQkFBcUIsQ0FDdEQsT0FBU0MsaUJBQWlCLEtB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
120
+ */static multilanguageRequiredAny(languages,validationMessage,validationMessageSummary){cov_2htktrox8d().f[16]++;cov_2htktrox8d().s[16]++;return multilanguageRequiredAnyValidator(languages,validationMessage,validationMessageSummary);}}/**
121
+ * Moment
122
+ */const moment=(cov_2htktrox8d().s[17]++,moment_['default']);//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUlsQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENB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dCB7IFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBMYW5ndWFnZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2xhbmd1YWdlbW9kZWwnO1xyXG5pbXBvcnQgeyBlbWFpbFZhbGlkYXRvciB9IGZyb20gJy4vZW1haWwudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgZXF1YWxzVmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL2VxdWFscy52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBpc1ZhbGlkRGF0ZVZhbGlkYXRvciB9IGZyb20gJy4vaW52YWxpZGRhdGUudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbWF4RGF0ZVZhbGlkYXRvciB9IGZyb20gJy4vbWF4ZGF0ZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtYXhUaW1lVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXh0aW1lLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1heFZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXh2YWx1ZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtaW5EYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi9taW5kYXRlLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1pbkZpbGVzVmFsaWRhdG9yIH0gZnJvbSAnLi9taW5maWxlcy52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtaW5MZW5ndGhWYWxpZGF0b3IgfSBmcm9tICcuL21pbmxlbmd0aC52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtaW5UaW1lVmFsaWRhdG9yIH0gZnJvbSAnLi9taW50aW1lLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1pblZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi9taW52YWx1ZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VyZXF1aXJlZC52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnlWYWxpZGF0b3IgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VyZXF1aXJlZGFueS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBub3RFcXVhbHNWYWx1ZVZhbGlkYXRvciB9IGZyb20gJy4vbm90ZXF1YWxzLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHBhdHRlcm5WYWxpZGF0b3IgfSBmcm9tICcuL3BhdHRlcm4udmFsaWRhdG9yJztcclxuaW1wb3J0IHsgcmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tICcuL3JlcXVpcmVkLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IENyZWF0ZVZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vdmFsaWRhdGlvbmVycm9yY3JlYXRvcic7XHJcblxyXG4vKipcclxuICogS2xhc3NlIG1pdCBTdGFuZGFyZCBWYWxpZGF0b3JlblxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb24ge1xyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIGlzdCB2b24gamVkZW0gVmFsaWRhdG9yIGF1ZmdlcnVmZW4uIERpZSBzZXR6dCBzb3dvaGwgZGVuIGVycm9yVHlwZSBkZXMgZ2VycMO8ZnRlIEl0ZW0sIGFscyBhdWNoIGRpZSBFcnJvck1lc3NhZ2UgKGdlbcOkc3Mgdm9uIGVycm9yVHlwZSwgRmllbGROYW1lIHVuZCBQYXJhbWV0ZXJzKS5cclxuICAgKiBAcGFyYW0gZXJyb3JUeXBlIFR5cCBkZW4gRmVobGVyXHJcbiAgICogQHBhcmFtIGVycm9yTWVzc2FnZUtleSBFcnJvciBNZXNzYWdlIEtleVxyXG4gICAqIEBwYXJhbSBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSBFcnJvciBNZXNzYWdlIEtleSBmw7xyIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgIExhYmVsIG9kZXIgTmFtZSBkZXMgRmVsZGVzXHJcbiAgICogQHBhcmFtIHBhcmFtZXRlcnMgUGFyYW1ldGVybiBkaWUgaW4gZGVuIE1lbGR1bmdlbiBhbHMgUGxhdHpoYWx0ZXIgdmVyd2VuZGV0IHdlcmRlbiBrw7ZubmVuXHJcbiAgICovXHJcbiAgc3RhdGljIEdldFZhbGlkYXRpb25FcnJvckl0ZW0oXHJcbiAgICBlcnJvclR5cGU6IHN0cmluZyxcclxuICAgIGVycm9yTWVzc2FnZUtleTogc3RyaW5nLFxyXG4gICAgZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXk6IHN0cmluZyxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nID0gbnVsbCxcclxuICAgIHBhcmFtZXRlcnM6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwPHN0cmluZywgYW55PigpXHJcbiAgKTogYW55IHtcclxuICAgIHJldHVybiBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoXHJcbiAgICAgIGVycm9yVHlwZSxcclxuICAgICAgZXJyb3JNZXNzYWdlS2V5LFxyXG4gICAgICBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSxcclxuICAgICAgcGFyYW1ldGVyc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciBmw7xyIFJlcXVpcmVkIFN0YXRlXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdpcmRcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIHJlcXVpcmVkKFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiByZXF1aXJlZFZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciB2YWxpZGF0ZSBpZiB2YWx1ZSBpcyB0aGUgcmVxdWlyZWRWYWx1ZVxyXG4gICAqIEBwYXJhbSByZXF1aXJlZFZhbHVlIFZhbHVlIHRoYXQgY29udHJvbCBzaG91bGQgaGF2ZVxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgdG8gYmUgdmFsaWRhdGVcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgdmFsaWRhdGlvbiBtZXNzYWdlIG5lYXIgdGhlIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IHZhbGlkYXRpb24gaW5zaWRlIHRoZSB2YWxpZGF0aW9uIHN1bW1hcnlcclxuXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBlcXVhbHMoXHJcbiAgICByZXF1aXJlZFZhbHVlOiBhbnksXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIGVxdWFsc1ZhbHVlVmFsaWRhdG9yKFxyXG4gICAgICByZXF1aXJlZFZhbHVlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdG9yIGRlciBwcsO8ZnQgb2IgZGVyIFdlcnQgZWluIERhdHVtIGlzdC5cclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIG1pdCBJRGF0ZVRpbWVDb250cm9sIEludGVyZmFjZSBpbXBsZW1lbnRpZXJ1bmdcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pblZhbHVlKFxyXG4gICAgbWludmFsdWU6IG51bWJlcixcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbWluVmFsdWVWYWxpZGF0b3IoXHJcbiAgICAgIG1pbnZhbHVlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ1bmcgbWl0IGVpbmVtIFJlZ0V4IFBhdHRlcm5cclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyB2YWxpZGllcnQgd2VyZGVuIHNvbGwuXHJcbiAgICogQHBhcmFtIHBhdHRlcm4gUmVnRXggUGF0dGVyblxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgKi9cclxuICBzdGF0aWMgcGF0dGVybihcclxuICAgIHBhdHRlcm46IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gcGF0dGVyblZhbGlkYXRvcihcclxuICAgICAgcGF0dGVybixcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciBmw7xyIE1heCBWYWx1ZVxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbFxyXG4gICAqIEBwYXJhbSBtYXh2YWx1ZSBNYXguIFdlcnRcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1heFZhbHVlKFxyXG4gICAgbWF4dmFsdWU6IG51bWJlcixcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbWF4VmFsdWVWYWxpZGF0b3IoXHJcbiAgICAgIG1heHZhbHVlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IEZlbGQgYXVmIEUtTWFpbCBBZHJlc3NlXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsZGllcnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIGVtYWlsKFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBlbWFpbFZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydCBhdWYgZGllIEzDpG5nZSBkZXMgV2VydGVzIGltIENvbnRyb2xcclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gbWlubGVuZ3RoIE1pbi4gTMOkbmdlIGRlcyBXZXJ0ZXNcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pbkxlbmd0aChcclxuICAgIG1pbmxlbmd0aDogbnVtYmVyLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtaW5MZW5ndGhWYWxpZGF0b3IoXHJcbiAgICAgIG1pbmxlbmd0aCxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydCBvYiBkYXMgRGF0dW0gbmV1ZXIgYWxzIG1pbkRhdGUgaXN0XHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsLiBNdXNzIElEYXRlVGltZUNvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxyXG4gICAqIEBwYXJhbSBtaW5EYXRlIE1pbi4gRGF0dW1cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pbkRhdGUoXHJcbiAgICBtaW5EYXRlOiBEYXRlLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtaW5EYXRlVmFsaWRhdG9yKFxyXG4gICAgICBtaW5EYXRlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IG9iIGRhcyBEYXR1bSDDpGx0ZXIgYWxzIG1heERhdGUgaXN0XHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsLiBNdXNzIElEYXRlVGltZUNvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxyXG4gICAqIEBwYXJhbSBtYXhEYXRlIG1heC4gRGF0dW1cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1heERhdGUoXHJcbiAgICBtYXhEYXRlOiBEYXRlLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtYXhEYXRlVmFsaWRhdG9yKFxyXG4gICAgICBtYXhEYXRlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IG9iIGRpZSBaZWl0IHNww6R0ZXIgYWxzIG1pblRpbWUgaXN0LlxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbC4gTXVzcyBJRGF0ZVRpbWVDb250cm9sIGltcGxlbWVudGllcnQgaGFiZW5cclxuICAgKiBAcGFyYW0gbWluVGltZSBNaW4uIFplaXRcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pblRpbWUoXHJcbiAgICBtaW5UaW1lOiBEYXRlLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeTogc3RyaW5nXHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG1pblRpbWVWYWxpZGF0b3IoXHJcbiAgICAgIG1pblRpbWUsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGllcnQgb2IgZGllIFplaXQgZnLDvGhlciBhbHMgbWF4VGltZSBpc3QuXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsLiBNdXNzIElEYXRlVGltZUNvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxyXG4gICAqIEBwYXJhbSBtYXhUaW1lIE1pbi4gWmVpdFxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgKi9cclxuICBzdGF0aWMgbWF4VGltZShcclxuICAgIG1heFRpbWU6IERhdGUsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG1heFRpbWVWYWxpZGF0b3IoXHJcbiAgICAgIG1heFRpbWUsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0b3IgZGVyIHByw7xmdCBvYiBkZXIgV2VydCBlaW4gRGF0dW0gaXN0LlxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgbWl0IElEYXRlVGltZUNvbnRyb2wgSW50ZXJmYWNlIGltcGxlbWVudGllcnVuZ1xyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGJlaW0gQ29udHJvbCBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIGlzVmFsaWREYXRlKFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBpc1ZhbGlkRGF0ZVZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciBmw7xyIG1pbi4gQW56YWhsIHZvbiBVcGxvYWRzXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRhdGllcnQgd2VyZGVuIHNvbGwuIENvbnRyb2wgbXVzcyBJVXBsb2FkQ29udHJvbCBpbXBsZW1lbnRpZXJ0IGhhYmVuXHJcbiAgICogQHBhcmFtIG1pbkZpbGVzIE1pbi4gQW56YWhsIEZpbGVzIGRpZSBob2NoZ2VsYWRlbiB3ZXJkZW4gbcO8c3NlblxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIHVudGVyaGFsYiBkZXMgQ29udHJvbHMgYW5nZXplaWd0IHdpcmRcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyBtaW5GaWxlcyhcclxuICAgIG1pbkZpbGVzOiBudW1iZXIsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG1pbkZpbGVzVmFsaWRhdG9yKFxyXG4gICAgICBtaW5GaWxlcyxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciB2YWxpZGF0ZSBpZiB2YWx1ZSBpcyBub3QgdGhlIGludmFsaWRWYWx1ZVxyXG4gICAqIEBwYXJhbSBpbnZhbGlkVmFsdWUgVmFsdWUgdGhhdCBjb250cm9sIGRvZXNuJ3Qgc2hvdWxkIGhhdmVcclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIHRvIGJlIHZhbGlkYXRlXHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIHZhbGlkYXRpb24gbWVzc2FnZSBuZWFyIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSB2YWxpZGF0aW9uIGluc2lkZSB0aGUgdmFsaWRhdGlvbiBzdW1tYXJ5XHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBub3RlcXVhbHMoXHJcbiAgICBpbnZhbGlkVmFsdWU6IGFueSxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbm90RXF1YWxzVmFsdWVWYWxpZGF0b3IoXHJcbiAgICAgIGludmFsaWRWYWx1ZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydW5nIG1pdCBlaW5lbSBSZWdFeCBQYXR0ZXJuXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgdmFsaWRpZXJ0IHdlcmRlbiBzb2xsLlxyXG4gICAqIEBwYXJhbSBwYXR0ZXJuIFJlZ0V4IFBhdHRlcm5cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSB1bnRlcmhhbGIgZGVzIENvbnRyb2xzIGFuZ2V6ZWlndCB3aXJkXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgKi9cclxuICBzdGF0aWMgbXVsdGlsYW5ndWFnZVJlcXVpcmVkKFxyXG4gICAgbGFuZ3VhZ2VzOiBMYW5ndWFnZU1vZGVsW10sXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG11bHRpbGFuZ3VhZ2VSZXF1aXJlZFZhbGlkYXRvcihcclxuICAgICAgbGFuZ3VhZ2VzLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdG9yIGbDvHIgTXVsdGlMYW5ndWFnZSBDb250cm9sLCB3ZWxjaGVyIMO8YmVycHLDvGZ0IG9iIG1pbi4gZWluIFdlcnQgZXJmYXNzdCB3dXJkZVxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkYXRpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICogQHBhcmFtIGxhbmd1YWdlcyBTcHJhY2hlbiBkaWUgaW0gQ29udHJvbCBlcmZhc3N0IHdlcmRlbiBrw7ZubmVuLlxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIHVudGVyaGFsYiBkZXMgQ29udHJvbHMgYW5nZXplaWd0IHdpcmRcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnkoXHJcbiAgICBsYW5ndWFnZXM6IExhbmd1YWdlTW9kZWxbXSxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55VmFsaWRhdG9yKFxyXG4gICAgICBsYW5ndWFnZXMsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogTW9tZW50XHJcbiAqL1xyXG5jb25zdCBtb21lbnQgPSBtb21lbnRfWydkZWZhdWx0J107XHJcbiJdfQ==
123
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMmh0a3Ryb3g4ZCIsImFjdHVhbENvdmVyYWdlIiwibW9tZW50XyIsImVtYWlsVmFsaWRhdG9yIiwiZXF1YWxzVmFsdWVWYWxpZGF0b3IiLCJpc1ZhbGlkRGF0ZVZhbGlkYXRvciIsIm1heERhdGVWYWxpZGF0b3IiLCJtYXhUaW1lVmFsaWRhdG9yIiwibWF4VmFsdWVWYWxpZGF0b3IiLCJtaW5EYXRlVmFsaWRhdG9yIiwibWluRmlsZXNWYWxpZGF0b3IiLCJtaW5MZW5ndGhWYWxpZGF0b3IiLCJtaW5UaW1lVmFsaWRhdG9yIiwibWluVmFsdWVWYWxpZGF0b3IiLCJtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IiLCJtdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnlWYWxpZGF0b3IiLCJub3RFcXVhbHNWYWx1ZVZhbGlkYXRvciIsInBhdHRlcm5WYWxpZGF0b3IiLCJyZXF1aXJlZFZhbGlkYXRvciIsIkNyZWF0ZVZhbGlkYXRpb25FcnJvciIsIlZhbGlkYXRpb24iLCJHZXRWYWxpZGF0aW9uRXJyb3JJdGVtIiwiZXJyb3JUeXBlIiwiZXJyb3JNZXNzYWdlS2V5IiwiZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXkiLCJmaWVsZE5hbWUiLCJiIiwicGFyYW1ldGVycyIsIk1hcCIsImYiLCJzIiwicmVxdWlyZWQiLCJ2YWxpZGF0aW9uTWVzc2FnZSIsInZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSIsImVxdWFscyIsInJlcXVpcmVkVmFsdWUiLCJtaW5WYWx1ZSIsIm1pbnZhbHVlIiwicGF0dGVybiIsIm1heFZhbHVlIiwibWF4dmFsdWUiLCJlbWFpbCIsIm1pbkxlbmd0aCIsIm1pbmxlbmd0aCIsIm1pbkRhdGUiLCJtYXhEYXRlIiwibWluVGltZSIsIm1heFRpbWUiLCJpc1ZhbGlkRGF0ZSIsIm1pbkZpbGVzIiwibm90ZXF1YWxzIiwiaW52YWxpZFZhbHVlIiwibXVsdGlsYW5ndWFnZVJlcXVpcmVkIiwibGFuZ3VhZ2VzIiwibXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55IiwibW9tZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvdmFsaWRhdGlvbi92YWxpZGF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcclxuXHJcbmltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBMYW5ndWFnZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2xhbmd1YWdlbW9kZWwnO1xyXG5pbXBvcnQgeyBlbWFpbFZhbGlkYXRvciB9IGZyb20gJy4vZW1haWwudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgZXF1YWxzVmFsdWVWYWxpZGF0b3IgfSBmcm9tICcuL2VxdWFscy52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBpc1ZhbGlkRGF0ZVZhbGlkYXRvciB9IGZyb20gJy4vaW52YWxpZGRhdGUudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgbWF4RGF0ZVZhbGlkYXRvciB9IGZyb20gJy4vbWF4ZGF0ZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtYXhUaW1lVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXh0aW1lLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1heFZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi9tYXh2YWx1ZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtaW5EYXRlVmFsaWRhdG9yIH0gZnJvbSAnLi9taW5kYXRlLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1pbkZpbGVzVmFsaWRhdG9yIH0gZnJvbSAnLi9taW5maWxlcy52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtaW5MZW5ndGhWYWxpZGF0b3IgfSBmcm9tICcuL21pbmxlbmd0aC52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtaW5UaW1lVmFsaWRhdG9yIH0gZnJvbSAnLi9taW50aW1lLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IG1pblZhbHVlVmFsaWRhdG9yIH0gZnJvbSAnLi9taW52YWx1ZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VyZXF1aXJlZC52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnlWYWxpZGF0b3IgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VyZXF1aXJlZGFueS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBub3RFcXVhbHNWYWx1ZVZhbGlkYXRvciB9IGZyb20gJy4vbm90ZXF1YWxzLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHBhdHRlcm5WYWxpZGF0b3IgfSBmcm9tICcuL3BhdHRlcm4udmFsaWRhdG9yJztcclxuaW1wb3J0IHsgcmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tICcuL3JlcXVpcmVkLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IENyZWF0ZVZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vdmFsaWRhdGlvbmVycm9yY3JlYXRvcic7XHJcblxyXG4vKipcclxuICogS2xhc3NlIG1pdCBTdGFuZGFyZCBWYWxpZGF0b3JlblxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb24ge1xyXG4gIC8qKlxyXG4gICAqIERpZSBNZXRob2RlIGlzdCB2b24gamVkZW0gVmFsaWRhdG9yIGF1ZmdlcnVmZW4uIERpZSBzZXR6dCBzb3dvaGwgZGVuIGVycm9yVHlwZSBkZXMgZ2VycMO8ZnRlIEl0ZW0sIGFscyBhdWNoIGRpZSBFcnJvck1lc3NhZ2UgKGdlbcOkc3Mgdm9uIGVycm9yVHlwZSwgRmllbGROYW1lIHVuZCBQYXJhbWV0ZXJzKS5cclxuICAgKiBAcGFyYW0gZXJyb3JUeXBlIFR5cCBkZW4gRmVobGVyXHJcbiAgICogQHBhcmFtIGVycm9yTWVzc2FnZUtleSBFcnJvciBNZXNzYWdlIEtleVxyXG4gICAqIEBwYXJhbSBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSBFcnJvciBNZXNzYWdlIEtleSBmw7xyIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgIExhYmVsIG9kZXIgTmFtZSBkZXMgRmVsZGVzXHJcbiAgICogQHBhcmFtIHBhcmFtZXRlcnMgUGFyYW1ldGVybiBkaWUgaW4gZGVuIE1lbGR1bmdlbiBhbHMgUGxhdHpoYWx0ZXIgdmVyd2VuZGV0IHdlcmRlbiBrw7ZubmVuXHJcbiAgICovXHJcbiAgc3RhdGljIEdldFZhbGlkYXRpb25FcnJvckl0ZW0oXHJcbiAgICBlcnJvclR5cGU6IHN0cmluZyxcclxuICAgIGVycm9yTWVzc2FnZUtleTogc3RyaW5nLFxyXG4gICAgZXJyb3JNZXNzYWdlVmFsaWRhdGlvblN1bW1hcnlLZXk6IHN0cmluZyxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nID0gbnVsbCxcclxuICAgIHBhcmFtZXRlcnM6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwPHN0cmluZywgYW55PigpXHJcbiAgKTogYW55IHtcclxuICAgIHJldHVybiBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoXHJcbiAgICAgIGVycm9yVHlwZSxcclxuICAgICAgZXJyb3JNZXNzYWdlS2V5LFxyXG4gICAgICBlcnJvck1lc3NhZ2VWYWxpZGF0aW9uU3VtbWFyeUtleSxcclxuICAgICAgcGFyYW1ldGVyc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciBmw7xyIFJlcXVpcmVkIFN0YXRlXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdpcmRcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIHJlcXVpcmVkKFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiByZXF1aXJlZFZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciB2YWxpZGF0ZSBpZiB2YWx1ZSBpcyB0aGUgcmVxdWlyZWRWYWx1ZVxyXG4gICAqIEBwYXJhbSByZXF1aXJlZFZhbHVlIFZhbHVlIHRoYXQgY29udHJvbCBzaG91bGQgaGF2ZVxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgdG8gYmUgdmFsaWRhdGVcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2UgdmFsaWRhdGlvbiBtZXNzYWdlIG5lYXIgdGhlIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IHZhbGlkYXRpb24gaW5zaWRlIHRoZSB2YWxpZGF0aW9uIHN1bW1hcnlcclxuXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBlcXVhbHMoXHJcbiAgICByZXF1aXJlZFZhbHVlOiBhbnksXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIGVxdWFsc1ZhbHVlVmFsaWRhdG9yKFxyXG4gICAgICByZXF1aXJlZFZhbHVlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdG9yIGRlciBwcsO8ZnQgb2IgZGVyIFdlcnQgZWluIERhdHVtIGlzdC5cclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIG1pdCBJRGF0ZVRpbWVDb250cm9sIEludGVyZmFjZSBpbXBsZW1lbnRpZXJ1bmdcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pblZhbHVlKFxyXG4gICAgbWludmFsdWU6IG51bWJlcixcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbWluVmFsdWVWYWxpZGF0b3IoXHJcbiAgICAgIG1pbnZhbHVlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ1bmcgbWl0IGVpbmVtIFJlZ0V4IFBhdHRlcm5cclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyB2YWxpZGllcnQgd2VyZGVuIHNvbGwuXHJcbiAgICogQHBhcmFtIHBhdHRlcm4gUmVnRXggUGF0dGVyblxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgKi9cclxuICBzdGF0aWMgcGF0dGVybihcclxuICAgIHBhdHRlcm46IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gcGF0dGVyblZhbGlkYXRvcihcclxuICAgICAgcGF0dGVybixcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciBmw7xyIE1heCBWYWx1ZVxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbFxyXG4gICAqIEBwYXJhbSBtYXh2YWx1ZSBNYXguIFdlcnRcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1heFZhbHVlKFxyXG4gICAgbWF4dmFsdWU6IG51bWJlcixcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbWF4VmFsdWVWYWxpZGF0b3IoXHJcbiAgICAgIG1heHZhbHVlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IEZlbGQgYXVmIEUtTWFpbCBBZHJlc3NlXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsZGllcnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIGVtYWlsKFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBlbWFpbFZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydCBhdWYgZGllIEzDpG5nZSBkZXMgV2VydGVzIGltIENvbnRyb2xcclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGRhcyBWYWxpZGllcnQgd2VyZGVuIHNvbGxcclxuICAgKiBAcGFyYW0gbWlubGVuZ3RoIE1pbi4gTMOkbmdlIGRlcyBXZXJ0ZXNcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pbkxlbmd0aChcclxuICAgIG1pbmxlbmd0aDogbnVtYmVyLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtaW5MZW5ndGhWYWxpZGF0b3IoXHJcbiAgICAgIG1pbmxlbmd0aCxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydCBvYiBkYXMgRGF0dW0gbmV1ZXIgYWxzIG1pbkRhdGUgaXN0XHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsLiBNdXNzIElEYXRlVGltZUNvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxyXG4gICAqIEBwYXJhbSBtaW5EYXRlIE1pbi4gRGF0dW1cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pbkRhdGUoXHJcbiAgICBtaW5EYXRlOiBEYXRlLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtaW5EYXRlVmFsaWRhdG9yKFxyXG4gICAgICBtaW5EYXRlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IG9iIGRhcyBEYXR1bSDDpGx0ZXIgYWxzIG1heERhdGUgaXN0XHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsLiBNdXNzIElEYXRlVGltZUNvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxyXG4gICAqIEBwYXJhbSBtYXhEYXRlIG1heC4gRGF0dW1cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1heERhdGUoXHJcbiAgICBtYXhEYXRlOiBEYXRlLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBtYXhEYXRlVmFsaWRhdG9yKFxyXG4gICAgICBtYXhEYXRlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IG9iIGRpZSBaZWl0IHNww6R0ZXIgYWxzIG1pblRpbWUgaXN0LlxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkaWVydCB3ZXJkZW4gc29sbC4gTXVzcyBJRGF0ZVRpbWVDb250cm9sIGltcGxlbWVudGllcnQgaGFiZW5cclxuICAgKiBAcGFyYW0gbWluVGltZSBNaW4uIFplaXRcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIG1pblRpbWUoXHJcbiAgICBtaW5UaW1lOiBEYXRlLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeTogc3RyaW5nXHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG1pblRpbWVWYWxpZGF0b3IoXHJcbiAgICAgIG1pblRpbWUsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGllcnQgb2IgZGllIFplaXQgZnLDvGhlciBhbHMgbWF4VGltZSBpc3QuXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRpZXJ0IHdlcmRlbiBzb2xsLiBNdXNzIElEYXRlVGltZUNvbnRyb2wgaW1wbGVtZW50aWVydCBoYWJlblxyXG4gICAqIEBwYXJhbSBtYXhUaW1lIE1pbi4gWmVpdFxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgKi9cclxuICBzdGF0aWMgbWF4VGltZShcclxuICAgIG1heFRpbWU6IERhdGUsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG1heFRpbWVWYWxpZGF0b3IoXHJcbiAgICAgIG1heFRpbWUsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0b3IgZGVyIHByw7xmdCBvYiBkZXIgV2VydCBlaW4gRGF0dW0gaXN0LlxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgbWl0IElEYXRlVGltZUNvbnRyb2wgSW50ZXJmYWNlIGltcGxlbWVudGllcnVuZ1xyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGJlaW0gQ29udHJvbCBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnkgVmFsaWRpZXJ1bmdzbWVsZHVuZyBkaWUgaW0gVmFsaWRhdGlvbiBTdW1tYXJ5IGFuZ2V6ZWlndCB3aXJkXHJcbiAgICovXHJcbiAgc3RhdGljIGlzVmFsaWREYXRlKFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBpc1ZhbGlkRGF0ZVZhbGlkYXRvcih2YWxpZGF0aW9uTWVzc2FnZSwgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciBmw7xyIG1pbi4gQW56YWhsIHZvbiBVcGxvYWRzXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgVmFsaWRhdGllcnQgd2VyZGVuIHNvbGwuIENvbnRyb2wgbXVzcyBJVXBsb2FkQ29udHJvbCBpbXBsZW1lbnRpZXJ0IGhhYmVuXHJcbiAgICogQHBhcmFtIG1pbkZpbGVzIE1pbi4gQW56YWhsIEZpbGVzIGRpZSBob2NoZ2VsYWRlbiB3ZXJkZW4gbcO8c3NlblxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIHVudGVyaGFsYiBkZXMgQ29udHJvbHMgYW5nZXplaWd0IHdpcmRcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyBtaW5GaWxlcyhcclxuICAgIG1pbkZpbGVzOiBudW1iZXIsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG1pbkZpbGVzVmFsaWRhdG9yKFxyXG4gICAgICBtaW5GaWxlcyxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRvciB2YWxpZGF0ZSBpZiB2YWx1ZSBpcyBub3QgdGhlIGludmFsaWRWYWx1ZVxyXG4gICAqIEBwYXJhbSBpbnZhbGlkVmFsdWUgVmFsdWUgdGhhdCBjb250cm9sIGRvZXNuJ3Qgc2hvdWxkIGhhdmVcclxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIHRvIGJlIHZhbGlkYXRlXHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBMYWJlbCBvZiBjb250cm9sXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIHZhbGlkYXRpb24gbWVzc2FnZSBuZWFyIHRoZSBjb250cm9sXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSB2YWxpZGF0aW9uIGluc2lkZSB0aGUgdmFsaWRhdGlvbiBzdW1tYXJ5XHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBub3RlcXVhbHMoXHJcbiAgICBpbnZhbGlkVmFsdWU6IGFueSxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbm90RXF1YWxzVmFsdWVWYWxpZGF0b3IoXHJcbiAgICAgIGludmFsaWRWYWx1ZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydW5nIG1pdCBlaW5lbSBSZWdFeCBQYXR0ZXJuXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBkYXMgdmFsaWRpZXJ0IHdlcmRlbiBzb2xsLlxyXG4gICAqIEBwYXJhbSBwYXR0ZXJuIFJlZ0V4IFBhdHRlcm5cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIExhYmVsIGRlcyBDb250cm9sc1xyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uTWVzc2FnZSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSB1bnRlcmhhbGIgZGVzIENvbnRyb2xzIGFuZ2V6ZWlndCB3aXJkXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlU3VtbWFyeSBWYWxpZGllcnVuZ3NtZWxkdW5nIGRpZSBpbSBWYWxpZGF0aW9uIFN1bW1hcnkgYW5nZXplaWd0IHdpcmRcclxuICAgKi9cclxuICBzdGF0aWMgbXVsdGlsYW5ndWFnZVJlcXVpcmVkKFxyXG4gICAgbGFuZ3VhZ2VzOiBMYW5ndWFnZU1vZGVsW10sXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIG11bHRpbGFuZ3VhZ2VSZXF1aXJlZFZhbGlkYXRvcihcclxuICAgICAgbGFuZ3VhZ2VzLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdG9yIGbDvHIgTXVsdGlMYW5ndWFnZSBDb250cm9sLCB3ZWxjaGVyIMO8YmVycHLDvGZ0IG9iIG1pbi4gZWluIFdlcnQgZXJmYXNzdCB3dXJkZVxyXG4gICAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgZGFzIFZhbGlkYXRpZXJ0IHdlcmRlbiBzb2xsXHJcbiAgICogQHBhcmFtIGxhbmd1YWdlcyBTcHJhY2hlbiBkaWUgaW0gQ29udHJvbCBlcmZhc3N0IHdlcmRlbiBrw7ZubmVuLlxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWUgTGFiZWwgZGVzIENvbnRyb2xzXHJcbiAgICogQHBhcmFtIHZhbGlkYXRpb25NZXNzYWdlIFZhbGlkaWVydW5nc21lbGR1bmcgZGllIHVudGVyaGFsYiBkZXMgQ29udHJvbHMgYW5nZXplaWd0IHdpcmRcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbk1lc3NhZ2VTdW1tYXJ5IFZhbGlkaWVydW5nc21lbGR1bmcgZGllIGltIFZhbGlkYXRpb24gU3VtbWFyeSBhbmdlemVpZ3Qgd2lyZFxyXG4gICAqL1xyXG4gIHN0YXRpYyBtdWx0aWxhbmd1YWdlUmVxdWlyZWRBbnkoXHJcbiAgICBsYW5ndWFnZXM6IExhbmd1YWdlTW9kZWxbXSxcclxuICAgIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gbXVsdGlsYW5ndWFnZVJlcXVpcmVkQW55VmFsaWRhdG9yKFxyXG4gICAgICBsYW5ndWFnZXMsXHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZVN1bW1hcnlcclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogTW9tZW50XHJcbiAqL1xyXG5jb25zdCBtb21lbnQgPSBtb21lbnRfWydkZWZhdWx0J107XHJcbiJdLCJtYXBwaW5ncyI6InV0cEJBa0JTO0FBQUFBLGNBQUEsU0FBQUEsQ0FBQSxTQUFBQyxjQUFBLFdBQUFBLGNBQUEsRUFBQUQsY0FBQSxHQWxCVCxNQUFPLEdBQUssQ0FBQUUsT0FBTyxLQUFNLFFBQVEsQ0FJakMsT0FBU0MsY0FBYyxLQUFRLG1CQUFtQixDQUNsRCxPQUFTQyxvQkFBb0IsS0FBUSxvQkFBb0IsQ0FDekQsT0FBU0Msb0JBQW9CLEtBQVEseUJBQXlCLENBQzlELE9BQVNDLGdCQUFnQixLQUFRLHFCQUFxQixDQUN0RCxPQUFTQyxnQkFBZ0IsS0FBUSxxQkFBcUIsQ0FDdEQsT0FBU0MsaUJBQWlCLEtBQVEsc0JBQXNCLENBQ3hELE9BQVNDLGdCQUFnQixLQUFRLHFCQUFxQixDQUN0RCxPQUFTQyxpQkFBaUIsS0FBUSxzQkFBc0IsQ0FDeEQsT0FBU0Msa0JBQWtCLEtBQVEsdUJBQXVCLENBQzFELE9BQVNDLGdCQUFnQixLQUFRLHFCQUFxQixDQUN0RCxPQUFTQyxpQkFBaUIsS0FBUSxzQkFBc0IsQ0FDeEQsT0FBU0MsOEJBQThCLEtBQVEsbUNBQW1DLENBQ2xGLE9BQVNDLGlDQUFpQyxLQUFRLHNDQUFzQyxDQUN4RixPQUFTQyx1QkFBdUIsS0FBUSx1QkFBdUIsQ0FDL0QsT0FBU0MsZ0JBQWdCLEtBQVEscUJBQXFCLENBQ3RELE9BQVNDLGlCQUFpQixLQUFRLHNCQUFzQixD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