carbon-components-angular 5.72.0 → 5.72.1

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 (116) hide show
  1. package/docs/documentation/components/TextInputLabelComponent.html +171 -65
  2. package/docs/documentation/components/TextareaLabelComponent.html +142 -74
  3. package/docs/documentation/coverage.html +12 -12
  4. package/docs/documentation/directives/TextArea.html +106 -11
  5. package/docs/documentation/directives/TextInput.html +118 -24
  6. package/docs/documentation/js/search/search_index.js +2 -2
  7. package/docs/documentation/modules/CheckboxModule/dependencies.svg +42 -42
  8. package/docs/documentation/modules/CheckboxModule.html +42 -42
  9. package/docs/documentation/modules/CodeSnippetModule/dependencies.svg +4 -4
  10. package/docs/documentation/modules/CodeSnippetModule.html +4 -4
  11. package/docs/documentation/modules/ComboBoxModule/dependencies.svg +6 -6
  12. package/docs/documentation/modules/ComboBoxModule.html +6 -6
  13. package/docs/documentation/modules/ContentSwitcherModule/dependencies.svg +4 -4
  14. package/docs/documentation/modules/ContentSwitcherModule.html +4 -4
  15. package/docs/documentation/modules/ContextMenuModule/dependencies.svg +67 -67
  16. package/docs/documentation/modules/ContextMenuModule.html +67 -67
  17. package/docs/documentation/modules/DatePickerInputModule/dependencies.svg +4 -4
  18. package/docs/documentation/modules/DatePickerInputModule.html +4 -4
  19. package/docs/documentation/modules/DatePickerModule/dependencies.svg +6 -6
  20. package/docs/documentation/modules/DatePickerModule.html +6 -6
  21. package/docs/documentation/modules/DialogModule/dependencies.svg +4 -4
  22. package/docs/documentation/modules/DialogModule.html +4 -4
  23. package/docs/documentation/modules/DropdownModule/dependencies.svg +53 -53
  24. package/docs/documentation/modules/DropdownModule.html +53 -53
  25. package/docs/documentation/modules/FileUploaderModule/dependencies.svg +58 -58
  26. package/docs/documentation/modules/FileUploaderModule.html +58 -58
  27. package/docs/documentation/modules/GridModule/dependencies.svg +29 -29
  28. package/docs/documentation/modules/GridModule.html +29 -29
  29. package/docs/documentation/modules/I18nModule/dependencies.svg +4 -4
  30. package/docs/documentation/modules/I18nModule.html +4 -4
  31. package/docs/documentation/modules/IconModule/dependencies.svg +4 -4
  32. package/docs/documentation/modules/IconModule.html +4 -4
  33. package/docs/documentation/modules/InputModule/dependencies.svg +76 -76
  34. package/docs/documentation/modules/InputModule.html +76 -76
  35. package/docs/documentation/modules/LayerModule/dependencies.svg +4 -4
  36. package/docs/documentation/modules/LayerModule.html +4 -4
  37. package/docs/documentation/modules/ListModule/dependencies.svg +4 -4
  38. package/docs/documentation/modules/ListModule.html +4 -4
  39. package/docs/documentation/modules/LoadingModule/dependencies.svg +4 -4
  40. package/docs/documentation/modules/LoadingModule.html +4 -4
  41. package/docs/documentation/modules/MenuButtonModule/dependencies.svg +29 -29
  42. package/docs/documentation/modules/MenuButtonModule.html +29 -29
  43. package/docs/documentation/modules/ModalModule/dependencies.svg +37 -37
  44. package/docs/documentation/modules/ModalModule.html +37 -37
  45. package/docs/documentation/modules/NumberModule/dependencies.svg +4 -4
  46. package/docs/documentation/modules/NumberModule.html +4 -4
  47. package/docs/documentation/modules/PaginationModule/dependencies.svg +56 -56
  48. package/docs/documentation/modules/PaginationModule.html +56 -56
  49. package/docs/documentation/modules/PanelModule/dependencies.svg +36 -36
  50. package/docs/documentation/modules/PanelModule.html +36 -36
  51. package/docs/documentation/modules/PopoverModule/dependencies.svg +4 -4
  52. package/docs/documentation/modules/PopoverModule.html +4 -4
  53. package/docs/documentation/modules/ProgressBarModule/dependencies.svg +4 -4
  54. package/docs/documentation/modules/ProgressBarModule.html +4 -4
  55. package/docs/documentation/modules/ProgressIndicatorModule/dependencies.svg +4 -4
  56. package/docs/documentation/modules/ProgressIndicatorModule.html +4 -4
  57. package/docs/documentation/modules/RadioModule/dependencies.svg +55 -59
  58. package/docs/documentation/modules/RadioModule.html +55 -59
  59. package/docs/documentation/modules/SelectModule/dependencies.svg +61 -61
  60. package/docs/documentation/modules/SelectModule.html +61 -61
  61. package/docs/documentation/modules/SideNavModule/dependencies.svg +41 -41
  62. package/docs/documentation/modules/SideNavModule.html +41 -41
  63. package/docs/documentation/modules/SkeletonModule/dependencies.svg +4 -4
  64. package/docs/documentation/modules/SkeletonModule.html +4 -4
  65. package/docs/documentation/modules/SliderModule/dependencies.svg +40 -36
  66. package/docs/documentation/modules/SliderModule.html +40 -36
  67. package/docs/documentation/modules/StructuredListModule/dependencies.svg +43 -43
  68. package/docs/documentation/modules/StructuredListModule.html +43 -43
  69. package/docs/documentation/modules/TableModule/dependencies.svg +225 -225
  70. package/docs/documentation/modules/TableModule.html +225 -225
  71. package/docs/documentation/modules/TabsModule/dependencies.svg +137 -137
  72. package/docs/documentation/modules/TabsModule.html +137 -137
  73. package/docs/documentation/modules/TagModule/dependencies.svg +38 -38
  74. package/docs/documentation/modules/TagModule.html +38 -38
  75. package/docs/documentation/modules/ThemeModule/dependencies.svg +13 -13
  76. package/docs/documentation/modules/ThemeModule.html +13 -13
  77. package/docs/documentation/modules/TilesModule/dependencies.svg +4 -4
  78. package/docs/documentation/modules/TilesModule.html +4 -4
  79. package/docs/documentation/modules/TimePickerModule/dependencies.svg +7 -7
  80. package/docs/documentation/modules/TimePickerModule.html +7 -7
  81. package/docs/documentation/modules/ToggleModule/dependencies.svg +18 -18
  82. package/docs/documentation/modules/ToggleModule.html +18 -18
  83. package/docs/documentation/modules/ToggletipModule/dependencies.svg +4 -4
  84. package/docs/documentation/modules/ToggletipModule.html +4 -4
  85. package/docs/documentation/modules/TooltipModule/dependencies.svg +4 -4
  86. package/docs/documentation/modules/TooltipModule.html +4 -4
  87. package/docs/documentation/modules/TreeviewModule/dependencies.svg +28 -28
  88. package/docs/documentation/modules/TreeviewModule.html +28 -28
  89. package/docs/documentation/modules/UIShellModule/dependencies.svg +4 -4
  90. package/docs/documentation/modules/UIShellModule.html +4 -4
  91. package/docs/documentation.json +249 -131
  92. package/docs/storybook/1345.da6e3dec.iframe.bundle.js +1 -0
  93. package/docs/storybook/7019.75ad5817.iframe.bundle.js +2 -0
  94. package/docs/storybook/iframe.html +2 -2
  95. package/docs/storybook/{input-input-stories.85a9e65e.iframe.bundle.js → input-input-stories.8bf34960.iframe.bundle.js} +1 -1
  96. package/docs/storybook/{input-textarea-stories.77240fb3.iframe.bundle.js → input-textarea-stories.ad775432.iframe.bundle.js} +1 -1
  97. package/docs/storybook/main.d2b9abb3.iframe.bundle.js +1 -0
  98. package/docs/storybook/project.json +1 -1
  99. package/docs/storybook/{runtime~main.e32f2dfb.iframe.bundle.js → runtime~main.86875b86.iframe.bundle.js} +1 -1
  100. package/esm2020/input/input.directive.mjs +11 -5
  101. package/esm2020/input/text-area.directive.mjs +11 -5
  102. package/esm2020/input/text-input-label.component.mjs +38 -15
  103. package/esm2020/input/textarea-label.component.mjs +46 -21
  104. package/fesm2015/carbon-components-angular-input.mjs +112 -46
  105. package/fesm2015/carbon-components-angular-input.mjs.map +1 -1
  106. package/fesm2020/carbon-components-angular-input.mjs +102 -45
  107. package/fesm2020/carbon-components-angular-input.mjs.map +1 -1
  108. package/input/input.directive.d.ts +4 -1
  109. package/input/text-area.directive.d.ts +4 -1
  110. package/input/text-input-label.component.d.ts +9 -5
  111. package/input/textarea-label.component.d.ts +5 -3
  112. package/package.json +1 -1
  113. package/docs/storybook/1345.9ccf4f3f.iframe.bundle.js +0 -1
  114. package/docs/storybook/7019.b8944046.iframe.bundle.js +0 -2
  115. package/docs/storybook/main.cdbf1814.iframe.bundle.js +0 -1
  116. /package/docs/storybook/{7019.b8944046.iframe.bundle.js.LICENSE.txt → 7019.75ad5817.iframe.bundle.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"generatedAt":1778087836227,"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":true,"hasStorybookEslint":false,"refCount":0,"packageManager":{"type":"npm","version":"8.19.4"},"preview":{"usesGlobals":false},"framework":{"name":"@storybook/angular","options":{}},"builder":"@storybook/builder-webpack5","renderer":"@storybook/angular","storybookVersion":"7.6.7","storybookVersionSpecifier":"7.6.7","language":"typescript","storybookPackages":{"@storybook/addon-actions":{"version":"7.6.7"},"@storybook/angular":{"version":"7.6.7"},"@storybook/theming":{"version":"7.6.7"},"storybook":{"version":"7.6.21"}},"addons":{"@storybook/addon-links":{"version":"7.6.7"},"@storybook/addon-essentials":{"options":{"backgrounds":false},"version":"7.6.7"},"@storybook/addon-a11y":{"version":"7.6.7"},"@storybook/addon-storysource":{"version":"7.6.7"}}}
1
+ {"generatedAt":1782398872712,"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":true,"hasStorybookEslint":false,"refCount":0,"packageManager":{"type":"npm","version":"8.19.4"},"preview":{"usesGlobals":false},"framework":{"name":"@storybook/angular","options":{}},"builder":"@storybook/builder-webpack5","renderer":"@storybook/angular","storybookVersion":"7.6.7","storybookVersionSpecifier":"7.6.7","language":"typescript","storybookPackages":{"@storybook/addon-actions":{"version":"7.6.7"},"@storybook/angular":{"version":"7.6.7"},"@storybook/theming":{"version":"7.6.7"},"storybook":{"version":"7.6.21"}},"addons":{"@storybook/addon-links":{"version":"7.6.7"},"@storybook/addon-essentials":{"options":{"backgrounds":false},"version":"7.6.7"},"@storybook/addon-a11y":{"version":"7.6.7"},"@storybook/addon-storysource":{"version":"7.6.7"}}}
@@ -1 +1 @@
1
- (()=>{"use strict";var deferred,leafPrototypes,getProto,inProgress,__webpack_modules__={},__webpack_module_cache__={};function __webpack_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];if(void 0!==cachedModule)return cachedModule.exports;var module=__webpack_module_cache__[moduleId]={id:moduleId,loaded:!1,exports:{}};return __webpack_modules__[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}__webpack_require__.m=__webpack_modules__,__webpack_require__.amdO={},deferred=[],__webpack_require__.O=(result,chunkIds,fn,priority)=>{if(!chunkIds){var notFulfilled=1/0;for(i=0;i<deferred.length;i++){for(var[chunkIds,fn,priority]=deferred[i],fulfilled=!0,j=0;j<chunkIds.length;j++)(!1&priority||notFulfilled>=priority)&&Object.keys(__webpack_require__.O).every((key=>__webpack_require__.O[key](chunkIds[j])))?chunkIds.splice(j--,1):(fulfilled=!1,priority<notFulfilled&&(notFulfilled=priority));if(fulfilled){deferred.splice(i--,1);var r=fn();void 0!==r&&(result=r)}}return result}priority=priority||0;for(var i=deferred.length;i>0&&deferred[i-1][2]>priority;i--)deferred[i]=deferred[i-1];deferred[i]=[chunkIds,fn,priority]},__webpack_require__.n=module=>{var getter=module&&module.__esModule?()=>module.default:()=>module;return __webpack_require__.d(getter,{a:getter}),getter},getProto=Object.getPrototypeOf?obj=>Object.getPrototypeOf(obj):obj=>obj.__proto__,__webpack_require__.t=function(value,mode){if(1&mode&&(value=this(value)),8&mode)return value;if("object"==typeof value&&value){if(4&mode&&value.__esModule)return value;if(16&mode&&"function"==typeof value.then)return value}var ns=Object.create(null);__webpack_require__.r(ns);var def={};leafPrototypes=leafPrototypes||[null,getProto({}),getProto([]),getProto(getProto)];for(var current=2&mode&&value;"object"==typeof current&&!~leafPrototypes.indexOf(current);current=getProto(current))Object.getOwnPropertyNames(current).forEach((key=>def[key]=()=>value[key]));return def.default=()=>value,__webpack_require__.d(ns,def),ns},__webpack_require__.d=(exports,definition)=>{for(var key in definition)__webpack_require__.o(definition,key)&&!__webpack_require__.o(exports,key)&&Object.defineProperty(exports,key,{enumerable:!0,get:definition[key]})},__webpack_require__.f={},__webpack_require__.e=chunkId=>Promise.all(Object.keys(__webpack_require__.f).reduce(((promises,key)=>(__webpack_require__.f[key](chunkId,promises),promises)),[])),__webpack_require__.u=chunkId=>(({140:"dialog-overflow-menu-overflow-menu-stories",210:"list-list-stories",384:"grid-css-grid-stories",459:"tabs-tabs-stories",653:"combo-button-combo-button-stories",703:"toggletip-toggletip-stories",799:"pagination-pagination-stories",911:"button-button-stories",933:"table-table-stories",972:"patterns-loading-large-loading-stories",1127:"search-search-stories",1928:"accordion-accordion-stories",2218:"inline-loading-inline-loading-stories",2342:"radio-radio-stories",2371:"timepicker-timepicker-stories",2388:"modal-modal-stories",2399:"input-textarea-stories",2489:"toggle-toggle-stories",2494:"loading-loading-stories",2573:"grid-grid-stories",2722:"context-menu-context-menu-stories",2969:"pagination-pagination-nav-stories",3046:"input-password-stories",3280:"tiles-tiles-stories",3314:"patterns-filtering-multiple-categories-stories",3329:"checkbox-checkbox-stories",3402:"tiles-expandable-tile-stories",3523:"contained-list-contained-list-stories",3610:"patterns-filtering-single-selection-stories",3719:"tiles-clickable-tile-stories",3858:"code-snippet-code-snippet-stories",3867:"tag-tag-stories",3957:"table-table-ai-label-stories",3987:"tabs-tabs-approaches-header-group-stories",4232:"patterns-forms-multi-step-form-stories",4253:"tooltip-tooltip-stories",4277:"patterns-dialogs-modal-with-table-stories",4391:"content-switcher-content-switcher-stories",4731:"icon-icon-stories",4762:"patterns-filtering-multi-selection-stories",5167:"button-icon-button-stories",5368:"number-input-number-stories",5455:"layer-layer-stories",5808:"progress-bar-progress-bar-stories",5980:"select-select-stories",6026:"slider-slider-stories",6085:"aspect-ratio-aspect-ratio-stories",6115:"theme-theme-stories",6274:"tooltip-definition-tooptip-stories",6310:"file-uploader-file-uploader-stories",6322:"popover-popover-stories",6456:"treeview-treeview-stories",6634:"link-link-stories",6663:"datepicker-datepicker-stories",6842:"breadcrumb-breadcrumb-stories",6943:"input-input-stories",6981:"file-uploader-file-stories",7081:"layout-stack-stories",7235:"index-stories",7291:"structured-list-structured-list-stories",7840:"patterns-loading-progressive-loading-stories",7869:"skeleton-skeleton-stories",7931:"notification-notification-stories",7991:"menu-button-menu-button-stories",8552:"button-button-set-stories",8667:"ai-label-ai-label-stories",8816:"tabs-tabs-approaches-regular-stories",9211:"dropdown-dropdown-stories",9325:"tiles-tile-group-stories",9552:"timepicker-select-timepicker-select-stories",9619:"progress-indicator-progress-indicator-stories",9660:"ui-shell-ui-shell-stories",9736:"combobox-combobox-stories"}[chunkId]||chunkId)+"."+{140:"1dd8a10d",210:"b81c613e",217:"4da1b35c",341:"a982d50b",384:"8a6d0c20",459:"a0cfde9f",503:"7113f5a6",653:"2995303b",703:"a4a02921",799:"fa7c9094",901:"49ee92eb",911:"146a70b6",933:"a0ce8815",955:"99b6ac85",972:"734fb9bc",1119:"29184bd5",1125:"37c137fa",1127:"f6bf90b2",1250:"47c381c1",1277:"4be2b1a4",1335:"988334fd",1345:"9ccf4f3f",1470:"39923f01",1928:"b02e8d7a",2218:"b29be1cc",2315:"9814e37f",2342:"444fc044",2371:"7b40e96a",2388:"0a864a6a",2399:"77240fb3",2489:"999199e8",2494:"261bc118",2573:"0af03d58",2722:"67d788a8",2969:"547eede3",3046:"8bac8fb8",3080:"d3996d61",3224:"3e279e46",3280:"caaccfb8",3314:"531f27d7",3329:"a40b7a36",3360:"e0c015fc",3402:"8cf36eef",3415:"bd5d140d",3523:"bc16e132",3610:"ec91f833",3719:"dcf7e3fd",3774:"c37f3d92",3858:"fd04f3c2",3867:"23eb0716",3882:"f509cf43",3931:"ef321db9",3957:"3a15bb8b",3987:"3eeb0edd",4232:"8696062a",4253:"eb2e347f",4277:"b72796c6",4292:"836243f0",4391:"335363a0",4731:"6f01bcf0",4762:"9086f77f",5069:"eabf32ea",5103:"20115e64",5167:"1e5a5e9c",5368:"d96ba54c",5455:"9fc41371",5808:"c95454e6",5980:"af1ae580",6026:"5884b16a",6085:"d2393495",6115:"66e1727e",6274:"9a2a5436",6310:"fa3bd098",6322:"d45529e5",6456:"dd4ab04a",6634:"f3492da3",6663:"559a71ec",6702:"fe63502f",6765:"352de0ff",6842:"8a53f03b",6943:"85a9e65e",6981:"6756aa82",7019:"b8944046",7053:"b450bb5e",7081:"799a681c",7235:"fa14a1f4",7291:"2d81b25d",7399:"f37bb110",7773:"9fe6f13f",7840:"10bcf9f2",7869:"ab75213a",7886:"245c0e58",7931:"624c3d04",7991:"1fcc7a41",8341:"e1e4a4fd",8446:"ede82a46",8552:"e1a24b3c",8667:"83ed183b",8816:"7d67d0e1",9115:"fef09076",9211:"a76101be",9300:"537382cc",9325:"781654a5",9552:"4a58311d",9579:"0b804947",9619:"dae29927",9660:"214d3ae0",9736:"e7427226"}[chunkId]+".iframe.bundle.js"),__webpack_require__.miniCssF=chunkId=>{},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.hmd=module=>((module=Object.create(module)).children||(module.children=[]),Object.defineProperty(module,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+module.id)}}),module),__webpack_require__.o=(obj,prop)=>Object.prototype.hasOwnProperty.call(obj,prop),inProgress={},__webpack_require__.l=(url,done,key,chunkId)=>{if(inProgress[url])inProgress[url].push(done);else{var script,needAttach;if(void 0!==key)for(var scripts=document.getElementsByTagName("script"),i=0;i<scripts.length;i++){var s=scripts[i];if(s.getAttribute("src")==url||s.getAttribute("data-webpack")=="carbon-components-angular:"+key){script=s;break}}script||(needAttach=!0,(script=document.createElement("script")).charset="utf-8",script.timeout=120,__webpack_require__.nc&&script.setAttribute("nonce",__webpack_require__.nc),script.setAttribute("data-webpack","carbon-components-angular:"+key),script.src=url),inProgress[url]=[done];var onScriptComplete=(prev,event)=>{script.onerror=script.onload=null,clearTimeout(timeout);var doneFns=inProgress[url];if(delete inProgress[url],script.parentNode&&script.parentNode.removeChild(script),doneFns&&doneFns.forEach((fn=>fn(event))),prev)return prev(event)},timeout=setTimeout(onScriptComplete.bind(null,void 0,{type:"timeout",target:script}),12e4);script.onerror=onScriptComplete.bind(null,script.onerror),script.onload=onScriptComplete.bind(null,script.onload),needAttach&&document.head.appendChild(script)}},__webpack_require__.r=exports=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(exports,"__esModule",{value:!0})},__webpack_require__.nmd=module=>(module.paths=[],module.children||(module.children=[]),module),__webpack_require__.p="",(()=>{var installedChunks={1303:0};__webpack_require__.f.j=(chunkId,promises)=>{var installedChunkData=__webpack_require__.o(installedChunks,chunkId)?installedChunks[chunkId]:void 0;if(0!==installedChunkData)if(installedChunkData)promises.push(installedChunkData[2]);else if(1303!=chunkId){var promise=new Promise(((resolve,reject)=>installedChunkData=installedChunks[chunkId]=[resolve,reject]));promises.push(installedChunkData[2]=promise);var url=__webpack_require__.p+__webpack_require__.u(chunkId),error=new Error;__webpack_require__.l(url,(event=>{if(__webpack_require__.o(installedChunks,chunkId)&&(0!==(installedChunkData=installedChunks[chunkId])&&(installedChunks[chunkId]=void 0),installedChunkData)){var errorType=event&&("load"===event.type?"missing":event.type),realSrc=event&&event.target&&event.target.src;error.message="Loading chunk "+chunkId+" failed.\n("+errorType+": "+realSrc+")",error.name="ChunkLoadError",error.type=errorType,error.request=realSrc,installedChunkData[1](error)}}),"chunk-"+chunkId,chunkId)}else installedChunks[chunkId]=0},__webpack_require__.O.j=chunkId=>0===installedChunks[chunkId];var webpackJsonpCallback=(parentChunkLoadingFunction,data)=>{var moduleId,chunkId,[chunkIds,moreModules,runtime]=data,i=0;if(chunkIds.some((id=>0!==installedChunks[id]))){for(moduleId in moreModules)__webpack_require__.o(moreModules,moduleId)&&(__webpack_require__.m[moduleId]=moreModules[moduleId]);if(runtime)var result=runtime(__webpack_require__)}for(parentChunkLoadingFunction&&parentChunkLoadingFunction(data);i<chunkIds.length;i++)chunkId=chunkIds[i],__webpack_require__.o(installedChunks,chunkId)&&installedChunks[chunkId]&&installedChunks[chunkId][0](),installedChunks[chunkId]=0;return __webpack_require__.O(result)},chunkLoadingGlobal=self.webpackChunkcarbon_components_angular=self.webpackChunkcarbon_components_angular||[];chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null,0)),chunkLoadingGlobal.push=webpackJsonpCallback.bind(null,chunkLoadingGlobal.push.bind(chunkLoadingGlobal))})(),__webpack_require__.nc=void 0})();
1
+ (()=>{"use strict";var deferred,leafPrototypes,getProto,inProgress,__webpack_modules__={},__webpack_module_cache__={};function __webpack_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];if(void 0!==cachedModule)return cachedModule.exports;var module=__webpack_module_cache__[moduleId]={id:moduleId,loaded:!1,exports:{}};return __webpack_modules__[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}__webpack_require__.m=__webpack_modules__,__webpack_require__.amdO={},deferred=[],__webpack_require__.O=(result,chunkIds,fn,priority)=>{if(!chunkIds){var notFulfilled=1/0;for(i=0;i<deferred.length;i++){for(var[chunkIds,fn,priority]=deferred[i],fulfilled=!0,j=0;j<chunkIds.length;j++)(!1&priority||notFulfilled>=priority)&&Object.keys(__webpack_require__.O).every((key=>__webpack_require__.O[key](chunkIds[j])))?chunkIds.splice(j--,1):(fulfilled=!1,priority<notFulfilled&&(notFulfilled=priority));if(fulfilled){deferred.splice(i--,1);var r=fn();void 0!==r&&(result=r)}}return result}priority=priority||0;for(var i=deferred.length;i>0&&deferred[i-1][2]>priority;i--)deferred[i]=deferred[i-1];deferred[i]=[chunkIds,fn,priority]},__webpack_require__.n=module=>{var getter=module&&module.__esModule?()=>module.default:()=>module;return __webpack_require__.d(getter,{a:getter}),getter},getProto=Object.getPrototypeOf?obj=>Object.getPrototypeOf(obj):obj=>obj.__proto__,__webpack_require__.t=function(value,mode){if(1&mode&&(value=this(value)),8&mode)return value;if("object"==typeof value&&value){if(4&mode&&value.__esModule)return value;if(16&mode&&"function"==typeof value.then)return value}var ns=Object.create(null);__webpack_require__.r(ns);var def={};leafPrototypes=leafPrototypes||[null,getProto({}),getProto([]),getProto(getProto)];for(var current=2&mode&&value;"object"==typeof current&&!~leafPrototypes.indexOf(current);current=getProto(current))Object.getOwnPropertyNames(current).forEach((key=>def[key]=()=>value[key]));return def.default=()=>value,__webpack_require__.d(ns,def),ns},__webpack_require__.d=(exports,definition)=>{for(var key in definition)__webpack_require__.o(definition,key)&&!__webpack_require__.o(exports,key)&&Object.defineProperty(exports,key,{enumerable:!0,get:definition[key]})},__webpack_require__.f={},__webpack_require__.e=chunkId=>Promise.all(Object.keys(__webpack_require__.f).reduce(((promises,key)=>(__webpack_require__.f[key](chunkId,promises),promises)),[])),__webpack_require__.u=chunkId=>(({140:"dialog-overflow-menu-overflow-menu-stories",210:"list-list-stories",384:"grid-css-grid-stories",459:"tabs-tabs-stories",653:"combo-button-combo-button-stories",703:"toggletip-toggletip-stories",799:"pagination-pagination-stories",911:"button-button-stories",933:"table-table-stories",972:"patterns-loading-large-loading-stories",1127:"search-search-stories",1928:"accordion-accordion-stories",2218:"inline-loading-inline-loading-stories",2342:"radio-radio-stories",2371:"timepicker-timepicker-stories",2388:"modal-modal-stories",2399:"input-textarea-stories",2489:"toggle-toggle-stories",2494:"loading-loading-stories",2573:"grid-grid-stories",2722:"context-menu-context-menu-stories",2969:"pagination-pagination-nav-stories",3046:"input-password-stories",3280:"tiles-tiles-stories",3314:"patterns-filtering-multiple-categories-stories",3329:"checkbox-checkbox-stories",3402:"tiles-expandable-tile-stories",3523:"contained-list-contained-list-stories",3610:"patterns-filtering-single-selection-stories",3719:"tiles-clickable-tile-stories",3858:"code-snippet-code-snippet-stories",3867:"tag-tag-stories",3957:"table-table-ai-label-stories",3987:"tabs-tabs-approaches-header-group-stories",4232:"patterns-forms-multi-step-form-stories",4253:"tooltip-tooltip-stories",4277:"patterns-dialogs-modal-with-table-stories",4391:"content-switcher-content-switcher-stories",4731:"icon-icon-stories",4762:"patterns-filtering-multi-selection-stories",5167:"button-icon-button-stories",5368:"number-input-number-stories",5455:"layer-layer-stories",5808:"progress-bar-progress-bar-stories",5980:"select-select-stories",6026:"slider-slider-stories",6085:"aspect-ratio-aspect-ratio-stories",6115:"theme-theme-stories",6274:"tooltip-definition-tooptip-stories",6310:"file-uploader-file-uploader-stories",6322:"popover-popover-stories",6456:"treeview-treeview-stories",6634:"link-link-stories",6663:"datepicker-datepicker-stories",6842:"breadcrumb-breadcrumb-stories",6943:"input-input-stories",6981:"file-uploader-file-stories",7081:"layout-stack-stories",7235:"index-stories",7291:"structured-list-structured-list-stories",7840:"patterns-loading-progressive-loading-stories",7869:"skeleton-skeleton-stories",7931:"notification-notification-stories",7991:"menu-button-menu-button-stories",8552:"button-button-set-stories",8667:"ai-label-ai-label-stories",8816:"tabs-tabs-approaches-regular-stories",9211:"dropdown-dropdown-stories",9325:"tiles-tile-group-stories",9552:"timepicker-select-timepicker-select-stories",9619:"progress-indicator-progress-indicator-stories",9660:"ui-shell-ui-shell-stories",9736:"combobox-combobox-stories"}[chunkId]||chunkId)+"."+{140:"1dd8a10d",210:"b81c613e",217:"4da1b35c",341:"a982d50b",384:"8a6d0c20",459:"a0cfde9f",503:"7113f5a6",653:"2995303b",703:"a4a02921",799:"fa7c9094",901:"49ee92eb",911:"146a70b6",933:"a0ce8815",955:"99b6ac85",972:"734fb9bc",1119:"29184bd5",1125:"37c137fa",1127:"f6bf90b2",1250:"47c381c1",1277:"4be2b1a4",1335:"988334fd",1345:"da6e3dec",1470:"39923f01",1928:"b02e8d7a",2218:"b29be1cc",2315:"9814e37f",2342:"444fc044",2371:"7b40e96a",2388:"0a864a6a",2399:"ad775432",2489:"999199e8",2494:"261bc118",2573:"0af03d58",2722:"67d788a8",2969:"547eede3",3046:"8bac8fb8",3080:"d3996d61",3224:"3e279e46",3280:"caaccfb8",3314:"531f27d7",3329:"a40b7a36",3360:"e0c015fc",3402:"8cf36eef",3415:"bd5d140d",3523:"bc16e132",3610:"ec91f833",3719:"dcf7e3fd",3774:"c37f3d92",3858:"fd04f3c2",3867:"23eb0716",3882:"f509cf43",3931:"ef321db9",3957:"3a15bb8b",3987:"3eeb0edd",4232:"8696062a",4253:"eb2e347f",4277:"b72796c6",4292:"836243f0",4391:"335363a0",4731:"6f01bcf0",4762:"9086f77f",5069:"eabf32ea",5103:"20115e64",5167:"1e5a5e9c",5368:"d96ba54c",5455:"9fc41371",5808:"c95454e6",5980:"af1ae580",6026:"5884b16a",6085:"d2393495",6115:"66e1727e",6274:"9a2a5436",6310:"fa3bd098",6322:"d45529e5",6456:"dd4ab04a",6634:"f3492da3",6663:"559a71ec",6702:"fe63502f",6765:"352de0ff",6842:"8a53f03b",6943:"8bf34960",6981:"6756aa82",7019:"75ad5817",7053:"b450bb5e",7081:"799a681c",7235:"fa14a1f4",7291:"2d81b25d",7399:"f37bb110",7773:"9fe6f13f",7840:"10bcf9f2",7869:"ab75213a",7886:"245c0e58",7931:"624c3d04",7991:"1fcc7a41",8341:"e1e4a4fd",8446:"ede82a46",8552:"e1a24b3c",8667:"83ed183b",8816:"7d67d0e1",9115:"fef09076",9211:"a76101be",9300:"537382cc",9325:"781654a5",9552:"4a58311d",9579:"0b804947",9619:"dae29927",9660:"214d3ae0",9736:"e7427226"}[chunkId]+".iframe.bundle.js"),__webpack_require__.miniCssF=chunkId=>{},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.hmd=module=>((module=Object.create(module)).children||(module.children=[]),Object.defineProperty(module,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+module.id)}}),module),__webpack_require__.o=(obj,prop)=>Object.prototype.hasOwnProperty.call(obj,prop),inProgress={},__webpack_require__.l=(url,done,key,chunkId)=>{if(inProgress[url])inProgress[url].push(done);else{var script,needAttach;if(void 0!==key)for(var scripts=document.getElementsByTagName("script"),i=0;i<scripts.length;i++){var s=scripts[i];if(s.getAttribute("src")==url||s.getAttribute("data-webpack")=="carbon-components-angular:"+key){script=s;break}}script||(needAttach=!0,(script=document.createElement("script")).charset="utf-8",script.timeout=120,__webpack_require__.nc&&script.setAttribute("nonce",__webpack_require__.nc),script.setAttribute("data-webpack","carbon-components-angular:"+key),script.src=url),inProgress[url]=[done];var onScriptComplete=(prev,event)=>{script.onerror=script.onload=null,clearTimeout(timeout);var doneFns=inProgress[url];if(delete inProgress[url],script.parentNode&&script.parentNode.removeChild(script),doneFns&&doneFns.forEach((fn=>fn(event))),prev)return prev(event)},timeout=setTimeout(onScriptComplete.bind(null,void 0,{type:"timeout",target:script}),12e4);script.onerror=onScriptComplete.bind(null,script.onerror),script.onload=onScriptComplete.bind(null,script.onload),needAttach&&document.head.appendChild(script)}},__webpack_require__.r=exports=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(exports,"__esModule",{value:!0})},__webpack_require__.nmd=module=>(module.paths=[],module.children||(module.children=[]),module),__webpack_require__.p="",(()=>{var installedChunks={1303:0};__webpack_require__.f.j=(chunkId,promises)=>{var installedChunkData=__webpack_require__.o(installedChunks,chunkId)?installedChunks[chunkId]:void 0;if(0!==installedChunkData)if(installedChunkData)promises.push(installedChunkData[2]);else if(1303!=chunkId){var promise=new Promise(((resolve,reject)=>installedChunkData=installedChunks[chunkId]=[resolve,reject]));promises.push(installedChunkData[2]=promise);var url=__webpack_require__.p+__webpack_require__.u(chunkId),error=new Error;__webpack_require__.l(url,(event=>{if(__webpack_require__.o(installedChunks,chunkId)&&(0!==(installedChunkData=installedChunks[chunkId])&&(installedChunks[chunkId]=void 0),installedChunkData)){var errorType=event&&("load"===event.type?"missing":event.type),realSrc=event&&event.target&&event.target.src;error.message="Loading chunk "+chunkId+" failed.\n("+errorType+": "+realSrc+")",error.name="ChunkLoadError",error.type=errorType,error.request=realSrc,installedChunkData[1](error)}}),"chunk-"+chunkId,chunkId)}else installedChunks[chunkId]=0},__webpack_require__.O.j=chunkId=>0===installedChunks[chunkId];var webpackJsonpCallback=(parentChunkLoadingFunction,data)=>{var moduleId,chunkId,[chunkIds,moreModules,runtime]=data,i=0;if(chunkIds.some((id=>0!==installedChunks[id]))){for(moduleId in moreModules)__webpack_require__.o(moreModules,moduleId)&&(__webpack_require__.m[moduleId]=moreModules[moduleId]);if(runtime)var result=runtime(__webpack_require__)}for(parentChunkLoadingFunction&&parentChunkLoadingFunction(data);i<chunkIds.length;i++)chunkId=chunkIds[i],__webpack_require__.o(installedChunks,chunkId)&&installedChunks[chunkId]&&installedChunks[chunkId][0](),installedChunks[chunkId]=0;return __webpack_require__.O(result)},chunkLoadingGlobal=self.webpackChunkcarbon_components_angular=self.webpackChunkcarbon_components_angular||[];chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null,0)),chunkLoadingGlobal.push=webpackJsonpCallback.bind(null,chunkLoadingGlobal.push.bind(chunkLoadingGlobal))})(),__webpack_require__.nc=void 0})();
@@ -1,5 +1,6 @@
1
- import { Directive, HostBinding, Input } from "@angular/core";
1
+ import { Directive, HostBinding, Input, Optional, Self } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/forms";
3
4
  /**
4
5
  * A directive for applying styling to an input element.
5
6
  *
@@ -12,7 +13,8 @@ import * as i0 from "@angular/core";
12
13
  * See the [vanilla carbon docs](http://www.carbondesignsystem.com/components/text-input/code) for more detail.
13
14
  */
14
15
  export class TextInput {
15
- constructor() {
16
+ constructor(ngControl) {
17
+ this.ngControl = ngControl;
16
18
  /**
17
19
  * @deprecated since v5 - Use `cdsLayer` directive instead
18
20
  * `light` or `dark` input theme
@@ -56,14 +58,18 @@ export class TextInput {
56
58
  return this.invalid ? true : undefined;
57
59
  }
58
60
  }
59
- TextInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TextInput, deps: [], target: i0.ɵɵFactoryTarget.Directive });
61
+ TextInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TextInput, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
60
62
  TextInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: TextInput, selector: "[cdsText], [ibmText]", inputs: { theme: "theme", size: "size", invalid: "invalid", warn: "warn", skeleton: "skeleton" }, host: { properties: { "class.cds--text-input": "this.inputClass", "class.cds--text-input--sm": "this.isSizeSm", "class.cds--text-input--md": "this.isSizeMd", "class.cds--text-input--lg": "this.isSizelg", "class.cds--layout--size-sm": "this.sizeSm", "class.cds--layout--size-md": "this.sizeMd", "class.cds--layout--size-lg": "this.sizelg", "class.cds--text-input--invalid": "this.invalid", "class.cds--text-input--warning": "this.warn", "class.cds--skeleton": "this.skeleton", "class.cds--text-input--light": "this.isLightTheme", "attr.data-invalid": "this.getInvalidAttribute" } }, ngImport: i0 });
61
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TextInput, decorators: [{
62
64
  type: Directive,
63
65
  args: [{
64
66
  selector: "[cdsText], [ibmText]"
65
67
  }]
66
- }], propDecorators: { theme: [{
68
+ }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
69
+ type: Self
70
+ }, {
71
+ type: Optional
72
+ }] }]; }, propDecorators: { theme: [{
67
73
  type: Input
68
74
  }], size: [{
69
75
  type: Input
@@ -110,4 +116,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
110
116
  type: HostBinding,
111
117
  args: ["attr.data-invalid"]
112
118
  }] } });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lucHV0L2lucHV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTlEOzs7Ozs7Ozs7O0dBVUc7QUFJSCxNQUFNLE9BQU8sU0FBUztJQUh0QjtRQUlDOzs7V0FHRztRQUNNLFVBQUssR0FBcUIsTUFBTSxDQUFDO1FBRTFDOztXQUVHO1FBQ00sU0FBSSxHQUF1QixJQUFJLENBQUM7UUFFSCxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBMEJBLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUN4QixhQUFRLEdBQUcsS0FBSyxDQUFDO0tBUzlEO0lBbkNBOztPQUVHO0lBQ0gsSUFBOEMsUUFBUTtRQUNyRCxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUE4QyxRQUFRO1FBQ3JELE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQThDLFFBQVE7UUFDckQsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQsT0FBTztJQUNQLElBQStDLE1BQU07UUFDcEQsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBK0MsTUFBTTtRQUNwRCxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUErQyxNQUFNO1FBQ3BELE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUtELElBQWlELFlBQVk7UUFDNUQsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBc0MsbUJBQW1CO1FBQ3hELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDeEMsQ0FBQzs7c0dBL0NXLFNBQVM7MEZBQVQsU0FBUzsyRkFBVCxTQUFTO2tCQUhyQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2hDOzhCQU1TLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRWdDLFVBQVU7c0JBQS9DLFdBQVc7dUJBQUMsdUJBQXVCO2dCQUtVLFFBQVE7c0JBQXJELFdBQVc7dUJBQUMsMkJBQTJCO2dCQUdNLFFBQVE7c0JBQXJELFdBQVc7dUJBQUMsMkJBQTJCO2dCQUdNLFFBQVE7c0JBQXJELFdBQVc7dUJBQUMsMkJBQTJCO2dCQUtPLE1BQU07c0JBQXBELFdBQVc7dUJBQUMsNEJBQTRCO2dCQUdNLE1BQU07c0JBQXBELFdBQVc7dUJBQUMsNEJBQTRCO2dCQUdNLE1BQU07c0JBQXBELFdBQVc7dUJBQUMsNEJBQTRCO2dCQUllLE9BQU87c0JBQTlELFdBQVc7dUJBQUMsZ0NBQWdDOztzQkFBRyxLQUFLO2dCQUNHLElBQUk7c0JBQTNELFdBQVc7dUJBQUMsZ0NBQWdDOztzQkFBRyxLQUFLO2dCQUNSLFFBQVE7c0JBQXBELFdBQVc7dUJBQUMscUJBQXFCOztzQkFBRyxLQUFLO2dCQUNPLFlBQVk7c0JBQTVELFdBQVc7dUJBQUMsOEJBQThCO2dCQUlMLG1CQUFtQjtzQkFBeEQsV0FBVzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgZm9yIGFwcGx5aW5nIHN0eWxpbmcgdG8gYW4gaW5wdXQgZWxlbWVudC5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIGBgYGh0bWxcbiAqIDxpbnB1dCBjZHNUZXh0Lz5cbiAqIGBgYFxuICpcbiAqIFNlZSB0aGUgW3ZhbmlsbGEgY2FyYm9uIGRvY3NdKGh0dHA6Ly93d3cuY2FyYm9uZGVzaWduc3lzdGVtLmNvbS9jb21wb25lbnRzL3RleHQtaW5wdXQvY29kZSkgZm9yIG1vcmUgZGV0YWlsLlxuICovXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6IFwiW2Nkc1RleHRdLCBbaWJtVGV4dF1cIlxufSlcbmV4cG9ydCBjbGFzcyBUZXh0SW5wdXQge1xuXHQvKipcblx0ICogQGRlcHJlY2F0ZWQgc2luY2UgdjUgLSBVc2UgYGNkc0xheWVyYCBkaXJlY3RpdmUgaW5zdGVhZFxuXHQgKiBgbGlnaHRgIG9yIGBkYXJrYCBpbnB1dCB0aGVtZVxuXHQgKi9cblx0QElucHV0KCkgdGhlbWU6IFwibGlnaHRcIiB8IFwiZGFya1wiID0gXCJkYXJrXCI7XG5cblx0LyoqXG5cdCAqIElucHV0IGZpZWxkIHJlbmRlciBzaXplXG5cdCAqL1xuXHRASW5wdXQoKSBzaXplOiBcInNtXCIgfCBcIm1kXCIgfCBcImxnXCIgPSBcIm1kXCI7XG5cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS10ZXh0LWlucHV0XCIpIGlucHV0Q2xhc3MgPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBAdG9kbyAtIHJlbW92ZSBgY2RzLS10ZXh0LWlucHV0LS0ke3NpemV9YCBjbGFzc2VzIGluIHYxMlxuXHQgKi9cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS10ZXh0LWlucHV0LS1zbVwiKSBnZXQgaXNTaXplU20oKSB7XG5cdFx0cmV0dXJuIHRoaXMuc2l6ZSA9PT0gXCJzbVwiO1xuXHR9XG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tdGV4dC1pbnB1dC0tbWRcIikgZ2V0IGlzU2l6ZU1kKCkge1xuXHRcdHJldHVybiB0aGlzLnNpemUgPT09IFwibWRcIjtcblx0fVxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLXRleHQtaW5wdXQtLWxnXCIpIGdldCBpc1NpemVsZygpIHtcblx0XHRyZXR1cm4gdGhpcy5zaXplID09PSBcImxnXCI7XG5cdH1cblxuXHQvLyBTaXplXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tbGF5b3V0LS1zaXplLXNtXCIpIGdldCBzaXplU20oKSB7XG5cdFx0cmV0dXJuIHRoaXMuc2l6ZSA9PT0gXCJzbVwiO1xuXHR9XG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tbGF5b3V0LS1zaXplLW1kXCIpIGdldCBzaXplTWQoKSB7XG5cdFx0cmV0dXJuIHRoaXMuc2l6ZSA9PT0gXCJtZFwiO1xuXHR9XG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tbGF5b3V0LS1zaXplLWxnXCIpIGdldCBzaXplbGcoKSB7XG5cdFx0cmV0dXJuIHRoaXMuc2l6ZSA9PT0gXCJsZ1wiO1xuXHR9XG5cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS10ZXh0LWlucHV0LS1pbnZhbGlkXCIpIEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS10ZXh0LWlucHV0LS13YXJuaW5nXCIpIEBJbnB1dCgpIHdhcm4gPSBmYWxzZTtcblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1za2VsZXRvblwiKSBASW5wdXQoKSBza2VsZXRvbiA9IGZhbHNlO1xuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLXRleHQtaW5wdXQtLWxpZ2h0XCIpIGdldCBpc0xpZ2h0VGhlbWUoKSB7XG5cdFx0cmV0dXJuIHRoaXMudGhlbWUgPT09IFwibGlnaHRcIjtcblx0fVxuXG5cdEBIb3N0QmluZGluZyhcImF0dHIuZGF0YS1pbnZhbGlkXCIpIGdldCBnZXRJbnZhbGlkQXR0cmlidXRlKCkge1xuXHRcdHJldHVybiB0aGlzLmludmFsaWQgPyB0cnVlIDogdW5kZWZpbmVkO1xuXHR9XG5cbn1cbiJdfQ==
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lucHV0L2lucHV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRzlFOzs7Ozs7Ozs7O0dBVUc7QUFJSCxNQUFNLE9BQU8sU0FBUztJQWlEckIsWUFBdUMsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQWhEM0Q7OztXQUdHO1FBQ00sVUFBSyxHQUFxQixNQUFNLENBQUM7UUFFMUM7O1dBRUc7UUFDTSxTQUFJLEdBQXVCLElBQUksQ0FBQztRQUVILGVBQVUsR0FBRyxJQUFJLENBQUM7UUEwQkEsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFTQSxDQUFDO0lBbkMvRDs7T0FFRztJQUNILElBQThDLFFBQVE7UUFDckQsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBOEMsUUFBUTtRQUNyRCxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUE4QyxRQUFRO1FBQ3JELE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELE9BQU87SUFDUCxJQUErQyxNQUFNO1FBQ3BELE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQStDLE1BQU07UUFDcEQsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBK0MsTUFBTTtRQUNwRCxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFLRCxJQUFpRCxZQUFZO1FBQzVELE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQXNDLG1CQUFtQjtRQUN4RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3hDLENBQUM7O3NHQS9DVyxTQUFTOzBGQUFULFNBQVM7MkZBQVQsU0FBUztrQkFIckIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsc0JBQXNCO2lCQUNoQzs7MEJBa0RhLElBQUk7OzBCQUFJLFFBQVE7NENBNUNwQixLQUFLO3NCQUFiLEtBQUs7Z0JBS0csSUFBSTtzQkFBWixLQUFLO2dCQUVnQyxVQUFVO3NCQUEvQyxXQUFXO3VCQUFDLHVCQUF1QjtnQkFLVSxRQUFRO3NCQUFyRCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFHTSxRQUFRO3NCQUFyRCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFHTSxRQUFRO3NCQUFyRCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFLTyxNQUFNO3NCQUFwRCxXQUFXO3VCQUFDLDRCQUE0QjtnQkFHTSxNQUFNO3NCQUFwRCxXQUFXO3VCQUFDLDRCQUE0QjtnQkFHTSxNQUFNO3NCQUFwRCxXQUFXO3VCQUFDLDRCQUE0QjtnQkFJZSxPQUFPO3NCQUE5RCxXQUFXO3VCQUFDLGdDQUFnQzs7c0JBQUcsS0FBSztnQkFDRyxJQUFJO3NCQUEzRCxXQUFXO3VCQUFDLGdDQUFnQzs7c0JBQUcsS0FBSztnQkFDUixRQUFRO3NCQUFwRCxXQUFXO3VCQUFDLHFCQUFxQjs7c0JBQUcsS0FBSztnQkFDTyxZQUFZO3NCQUE1RCxXQUFXO3VCQUFDLDhCQUE4QjtnQkFJTCxtQkFBbUI7c0JBQXhELFdBQVc7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSW5wdXQsIE9wdGlvbmFsLCBTZWxmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG4vKipcbiAqIEEgZGlyZWN0aXZlIGZvciBhcHBseWluZyBzdHlsaW5nIHRvIGFuIGlucHV0IGVsZW1lbnQuXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiBgYGBodG1sXG4gKiA8aW5wdXQgY2RzVGV4dC8+XG4gKiBgYGBcbiAqXG4gKiBTZWUgdGhlIFt2YW5pbGxhIGNhcmJvbiBkb2NzXShodHRwOi8vd3d3LmNhcmJvbmRlc2lnbnN5c3RlbS5jb20vY29tcG9uZW50cy90ZXh0LWlucHV0L2NvZGUpIGZvciBtb3JlIGRldGFpbC5cbiAqL1xuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiBcIltjZHNUZXh0XSwgW2libVRleHRdXCJcbn0pXG5leHBvcnQgY2xhc3MgVGV4dElucHV0IHtcblx0LyoqXG5cdCAqIEBkZXByZWNhdGVkIHNpbmNlIHY1IC0gVXNlIGBjZHNMYXllcmAgZGlyZWN0aXZlIGluc3RlYWRcblx0ICogYGxpZ2h0YCBvciBgZGFya2AgaW5wdXQgdGhlbWVcblx0ICovXG5cdEBJbnB1dCgpIHRoZW1lOiBcImxpZ2h0XCIgfCBcImRhcmtcIiA9IFwiZGFya1wiO1xuXG5cdC8qKlxuXHQgKiBJbnB1dCBmaWVsZCByZW5kZXIgc2l6ZVxuXHQgKi9cblx0QElucHV0KCkgc2l6ZTogXCJzbVwiIHwgXCJtZFwiIHwgXCJsZ1wiID0gXCJtZFwiO1xuXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tdGV4dC1pbnB1dFwiKSBpbnB1dENsYXNzID0gdHJ1ZTtcblxuXHQvKipcblx0ICogQHRvZG8gLSByZW1vdmUgYGNkcy0tdGV4dC1pbnB1dC0tJHtzaXplfWAgY2xhc3NlcyBpbiB2MTJcblx0ICovXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tdGV4dC1pbnB1dC0tc21cIikgZ2V0IGlzU2l6ZVNtKCkge1xuXHRcdHJldHVybiB0aGlzLnNpemUgPT09IFwic21cIjtcblx0fVxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLXRleHQtaW5wdXQtLW1kXCIpIGdldCBpc1NpemVNZCgpIHtcblx0XHRyZXR1cm4gdGhpcy5zaXplID09PSBcIm1kXCI7XG5cdH1cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS10ZXh0LWlucHV0LS1sZ1wiKSBnZXQgaXNTaXplbGcoKSB7XG5cdFx0cmV0dXJuIHRoaXMuc2l6ZSA9PT0gXCJsZ1wiO1xuXHR9XG5cblx0Ly8gU2l6ZVxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLWxheW91dC0tc2l6ZS1zbVwiKSBnZXQgc2l6ZVNtKCkge1xuXHRcdHJldHVybiB0aGlzLnNpemUgPT09IFwic21cIjtcblx0fVxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLWxheW91dC0tc2l6ZS1tZFwiKSBnZXQgc2l6ZU1kKCkge1xuXHRcdHJldHVybiB0aGlzLnNpemUgPT09IFwibWRcIjtcblx0fVxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLWxheW91dC0tc2l6ZS1sZ1wiKSBnZXQgc2l6ZWxnKCkge1xuXHRcdHJldHVybiB0aGlzLnNpemUgPT09IFwibGdcIjtcblx0fVxuXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tdGV4dC1pbnB1dC0taW52YWxpZFwiKSBASW5wdXQoKSBpbnZhbGlkID0gZmFsc2U7XG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tdGV4dC1pbnB1dC0td2FybmluZ1wiKSBASW5wdXQoKSB3YXJuID0gZmFsc2U7XG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tc2tlbGV0b25cIikgQElucHV0KCkgc2tlbGV0b24gPSBmYWxzZTtcblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS10ZXh0LWlucHV0LS1saWdodFwiKSBnZXQgaXNMaWdodFRoZW1lKCkge1xuXHRcdHJldHVybiB0aGlzLnRoZW1lID09PSBcImxpZ2h0XCI7XG5cdH1cblxuXHRASG9zdEJpbmRpbmcoXCJhdHRyLmRhdGEtaW52YWxpZFwiKSBnZXQgZ2V0SW52YWxpZEF0dHJpYnV0ZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5pbnZhbGlkID8gdHJ1ZSA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdGNvbnN0cnVjdG9yKEBTZWxmKCkgQE9wdGlvbmFsKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sKSB7fVxufVxuIl19
@@ -1,5 +1,6 @@
1
- import { Directive, HostBinding, Input } from "@angular/core";
1
+ import { Directive, HostBinding, Input, Optional, Self } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/forms";
3
4
  /**
4
5
  * A directive for applying styling to a textarea element.
5
6
  *
@@ -12,7 +13,8 @@ import * as i0 from "@angular/core";
12
13
  * See the [vanilla carbon docs](http://www.carbondesignsystem.com/components/text-input/code) for more detail.
13
14
  */
14
15
  export class TextArea {
15
- constructor() {
16
+ constructor(ngControl) {
17
+ this.ngControl = ngControl;
16
18
  /**
17
19
  * @deprecated since v5 - Use `cdsLayer` directive instead
18
20
  * `light` or `dark` input theme
@@ -33,14 +35,18 @@ export class TextArea {
33
35
  return this.invalid ? true : undefined;
34
36
  }
35
37
  }
36
- TextArea.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TextArea, deps: [], target: i0.ɵɵFactoryTarget.Directive });
38
+ TextArea.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TextArea, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
37
39
  TextArea.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: TextArea, selector: "[cdsTextArea], [ibmTextArea]", inputs: { theme: "theme", invalid: "invalid", warn: "warn", skeleton: "skeleton" }, host: { properties: { "class.cds--text-area": "this.baseClass", "class.cds--text-area--invalid": "this.invalid", "class.cds--text-area--warn": "this.warn", "class.cds--skeleton": "this.skeleton", "class.cds--text-area--light": "this.isLightTheme", "attr.data-invalid": "this.getInvalidAttr" } }, ngImport: i0 });
38
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TextArea, decorators: [{
39
41
  type: Directive,
40
42
  args: [{
41
43
  selector: "[cdsTextArea], [ibmTextArea]"
42
44
  }]
43
- }], propDecorators: { theme: [{
45
+ }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
46
+ type: Self
47
+ }, {
48
+ type: Optional
49
+ }] }]; }, propDecorators: { theme: [{
44
50
  type: Input
45
51
  }], baseClass: [{
46
52
  type: HostBinding,
@@ -67,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
67
73
  type: HostBinding,
68
74
  args: ["attr.data-invalid"]
69
75
  }] } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnB1dC90ZXh0LWFyZWEuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFOUQ7Ozs7Ozs7Ozs7R0FVRztBQUlILE1BQU0sT0FBTyxRQUFRO0lBSHJCO1FBSUM7OztXQUdHO1FBQ00sVUFBSyxHQUFxQixNQUFNLENBQUM7UUFFTCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ0MsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUN2RTs7V0FFRztRQUNpRCxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGFBQVEsR0FBRyxLQUFLLENBQUM7S0FROUQ7SUFQQSxJQUFnRCxZQUFZO1FBQzNELE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQXNDLGNBQWM7UUFDbkQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN4QyxDQUFDOztxR0FwQlcsUUFBUTt5RkFBUixRQUFROzJGQUFSLFFBQVE7a0JBSHBCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLDhCQUE4QjtpQkFDeEM7OEJBTVMsS0FBSztzQkFBYixLQUFLO2dCQUUrQixTQUFTO3NCQUE3QyxXQUFXO3VCQUFDLHNCQUFzQjtnQkFDb0IsT0FBTztzQkFBN0QsV0FBVzt1QkFBQywrQkFBK0I7O3NCQUFHLEtBQUs7Z0JBSUEsSUFBSTtzQkFBdkQsV0FBVzt1QkFBQyw0QkFBNEI7O3NCQUFHLEtBQUs7Z0JBQ0osUUFBUTtzQkFBcEQsV0FBVzt1QkFBQyxxQkFBcUI7O3NCQUFHLEtBQUs7Z0JBQ00sWUFBWTtzQkFBM0QsV0FBVzt1QkFBQyw2QkFBNkI7Z0JBSUosY0FBYztzQkFBbkQsV0FBVzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgZm9yIGFwcGx5aW5nIHN0eWxpbmcgdG8gYSB0ZXh0YXJlYSBlbGVtZW50LlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogYGBgaHRtbFxuICogPHRleHRhcmVhIGNkc1RleHRBcmVhPjwvdGV4dGFyZWE+XG4gKiBgYGBcbiAqXG4gKiBTZWUgdGhlIFt2YW5pbGxhIGNhcmJvbiBkb2NzXShodHRwOi8vd3d3LmNhcmJvbmRlc2lnbnN5c3RlbS5jb20vY29tcG9uZW50cy90ZXh0LWlucHV0L2NvZGUpIGZvciBtb3JlIGRldGFpbC5cbiAqL1xuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiBcIltjZHNUZXh0QXJlYV0sIFtpYm1UZXh0QXJlYV1cIlxufSlcbmV4cG9ydCBjbGFzcyBUZXh0QXJlYSB7XG5cdC8qKlxuXHQgKiBAZGVwcmVjYXRlZCBzaW5jZSB2NSAtIFVzZSBgY2RzTGF5ZXJgIGRpcmVjdGl2ZSBpbnN0ZWFkXG5cdCAqIGBsaWdodGAgb3IgYGRhcmtgIGlucHV0IHRoZW1lXG5cdCAqL1xuXHRASW5wdXQoKSB0aGVtZTogXCJsaWdodFwiIHwgXCJkYXJrXCIgPSBcImRhcmtcIjtcblxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLXRleHQtYXJlYVwiKSBiYXNlQ2xhc3MgPSB0cnVlO1xuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLXRleHQtYXJlYS0taW52YWxpZFwiKSBASW5wdXQoKSBpbnZhbGlkID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIHRvIHB1dCB0aGUgdGV4dGFyZWEgaW4gYSB3YXJuaW5nIHN0YXRlLlxuXHQgKi9cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS10ZXh0LWFyZWEtLXdhcm5cIikgQElucHV0KCkgd2FybiA9IGZhbHNlO1xuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLXNrZWxldG9uXCIpIEBJbnB1dCgpIHNrZWxldG9uID0gZmFsc2U7XG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tdGV4dC1hcmVhLS1saWdodFwiKSBnZXQgaXNMaWdodFRoZW1lKCkge1xuXHRcdHJldHVybiB0aGlzLnRoZW1lID09PSBcImxpZ2h0XCI7XG5cdH1cblxuXHRASG9zdEJpbmRpbmcoXCJhdHRyLmRhdGEtaW52YWxpZFwiKSBnZXQgZ2V0SW52YWxpZEF0dHIoKSB7XG5cdFx0cmV0dXJuIHRoaXMuaW52YWxpZCA/IHRydWUgOiB1bmRlZmluZWQ7XG5cdH1cbn1cbiJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnB1dC90ZXh0LWFyZWEuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHOUU7Ozs7Ozs7Ozs7R0FVRztBQUlILE1BQU0sT0FBTyxRQUFRO0lBc0JwQixZQUF1QyxTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBckIzRDs7O1dBR0c7UUFDTSxVQUFLLEdBQXFCLE1BQU0sQ0FBQztRQUVMLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3ZFOztXQUVHO1FBQ2lELFNBQUksR0FBRyxLQUFLLENBQUM7UUFDcEIsYUFBUSxHQUFHLEtBQUssQ0FBQztJQVNBLENBQUM7SUFSL0QsSUFBZ0QsWUFBWTtRQUMzRCxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFzQyxjQUFjO1FBQ25ELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDeEMsQ0FBQzs7cUdBcEJXLFFBQVE7eUZBQVIsUUFBUTsyRkFBUixRQUFRO2tCQUhwQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSw4QkFBOEI7aUJBQ3hDOzswQkF1QmEsSUFBSTs7MEJBQUksUUFBUTs0Q0FqQnBCLEtBQUs7c0JBQWIsS0FBSztnQkFFK0IsU0FBUztzQkFBN0MsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBQ29CLE9BQU87c0JBQTdELFdBQVc7dUJBQUMsK0JBQStCOztzQkFBRyxLQUFLO2dCQUlBLElBQUk7c0JBQXZELFdBQVc7dUJBQUMsNEJBQTRCOztzQkFBRyxLQUFLO2dCQUNKLFFBQVE7c0JBQXBELFdBQVc7dUJBQUMscUJBQXFCOztzQkFBRyxLQUFLO2dCQUNNLFlBQVk7c0JBQTNELFdBQVc7dUJBQUMsNkJBQTZCO2dCQUlKLGNBQWM7c0JBQW5ELFdBQVc7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSW5wdXQsIE9wdGlvbmFsLCBTZWxmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG4vKipcbiAqIEEgZGlyZWN0aXZlIGZvciBhcHBseWluZyBzdHlsaW5nIHRvIGEgdGV4dGFyZWEgZWxlbWVudC5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIGBgYGh0bWxcbiAqIDx0ZXh0YXJlYSBjZHNUZXh0QXJlYT48L3RleHRhcmVhPlxuICogYGBgXG4gKlxuICogU2VlIHRoZSBbdmFuaWxsYSBjYXJib24gZG9jc10oaHR0cDovL3d3dy5jYXJib25kZXNpZ25zeXN0ZW0uY29tL2NvbXBvbmVudHMvdGV4dC1pbnB1dC9jb2RlKSBmb3IgbW9yZSBkZXRhaWwuXG4gKi9cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogXCJbY2RzVGV4dEFyZWFdLCBbaWJtVGV4dEFyZWFdXCJcbn0pXG5leHBvcnQgY2xhc3MgVGV4dEFyZWEge1xuXHQvKipcblx0ICogQGRlcHJlY2F0ZWQgc2luY2UgdjUgLSBVc2UgYGNkc0xheWVyYCBkaXJlY3RpdmUgaW5zdGVhZFxuXHQgKiBgbGlnaHRgIG9yIGBkYXJrYCBpbnB1dCB0aGVtZVxuXHQgKi9cblx0QElucHV0KCkgdGhlbWU6IFwibGlnaHRcIiB8IFwiZGFya1wiID0gXCJkYXJrXCI7XG5cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS10ZXh0LWFyZWFcIikgYmFzZUNsYXNzID0gdHJ1ZTtcblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS10ZXh0LWFyZWEtLWludmFsaWRcIikgQElucHV0KCkgaW52YWxpZCA9IGZhbHNlO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCB0byBwdXQgdGhlIHRleHRhcmVhIGluIGEgd2FybmluZyBzdGF0ZS5cblx0ICovXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tdGV4dC1hcmVhLS13YXJuXCIpIEBJbnB1dCgpIHdhcm4gPSBmYWxzZTtcblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1za2VsZXRvblwiKSBASW5wdXQoKSBza2VsZXRvbiA9IGZhbHNlO1xuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLXRleHQtYXJlYS0tbGlnaHRcIikgZ2V0IGlzTGlnaHRUaGVtZSgpIHtcblx0XHRyZXR1cm4gdGhpcy50aGVtZSA9PT0gXCJsaWdodFwiO1xuXHR9XG5cblx0QEhvc3RCaW5kaW5nKFwiYXR0ci5kYXRhLWludmFsaWRcIikgZ2V0IGdldEludmFsaWRBdHRyKCkge1xuXHRcdHJldHVybiB0aGlzLmludmFsaWQgPyB0cnVlIDogdW5kZWZpbmVkO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wpIHt9XG59XG4iXX0=
@@ -1,4 +1,6 @@
1
- import { Component, HostBinding, Input, TemplateRef, ViewChild } from "@angular/core";
1
+ import { Component, ContentChild, HostBinding, Input, TemplateRef, ViewChild } from "@angular/core";
2
+ import { startWith } from "rxjs/operators";
3
+ import { TextInput } from "./input.directive";
2
4
  import * as i0 from "@angular/core";
3
5
  import * as i1 from "@angular/common";
4
6
  import * as i2 from "carbon-components-angular/icon";
@@ -74,7 +76,9 @@ export class TextInputLabelComponent {
74
76
  this.textInputWrapper = true;
75
77
  // Cached reference to the input element, set once in ngAfterViewInit.
76
78
  this._inputElement = null;
77
- // Cached listener so it can be removed precisely (avoids anonymous-function leak).
79
+ // RxJS subscription used when NgControl is available (template-driven & reactive forms).
80
+ this._subscription = null;
81
+ // Fallback cached DOM listener so it can be removed precisely (avoids anonymous-function leak).
78
82
  this._inputListener = null;
79
83
  }
80
84
  get isInlineWrapper() {
@@ -122,8 +126,7 @@ export class TextInputLabelComponent {
122
126
  }
123
127
  }
124
128
  /**
125
- * Attach/remove listener and seed `textCount` from the textarea's current value.
126
- * @param changes
129
+ * Attach/remove listener and seed `textCount` from the input's current value.
127
130
  */
128
131
  ngOnChanges(changes) {
129
132
  if (changes.enableCounter && !changes.enableCounter.firstChange) {
@@ -149,23 +152,40 @@ export class TextInputLabelComponent {
149
152
  return value instanceof TemplateRef;
150
153
  }
151
154
  /**
152
- * Attaches the input event listener, ensuring it is never added twice.
155
+ * Attaches the counter listener, listen for either ngControl or native DOM input
156
+ * event listener
153
157
  */
154
158
  _attachCounterListener() {
155
159
  this._detachCounterListener();
156
- if (!this._inputElement) {
157
- return;
160
+ const control = this.textInput?.ngControl;
161
+ if (control?.valueChanges) {
162
+ // NgControl listener
163
+ this._subscription = control.valueChanges
164
+ .pipe(startWith(control.value))
165
+ .subscribe((value) => {
166
+ this.textCount = value?.length || 0;
167
+ this.changeDetectorRef.markForCheck();
168
+ });
169
+ }
170
+ else {
171
+ // Fallback DOM path
172
+ if (!this._inputElement) {
173
+ return;
174
+ }
175
+ this._inputListener = (e) => {
176
+ this.textCount = e.target.value?.length || 0;
177
+ this.changeDetectorRef.detectChanges();
178
+ };
179
+ this._inputElement.addEventListener("input", this._inputListener);
158
180
  }
159
- this._inputListener = (e) => {
160
- this.textCount = e.target.value?.length || 0;
161
- this.changeDetectorRef.detectChanges();
162
- };
163
- this._inputElement.addEventListener("input", this._inputListener);
164
181
  }
165
182
  /**
166
- * Removes the input event listener and clears the cached reference.
183
+ * Removes the subscription (NgControl path) or removes the DOM listener.
184
+ * Safe to call when neither is active.
167
185
  */
168
186
  _detachCounterListener() {
187
+ this._subscription?.unsubscribe();
188
+ this._subscription = null;
169
189
  if (this._inputListener && this._inputElement) {
170
190
  this._inputElement.removeEventListener("input", this._inputListener);
171
191
  this._inputListener = null;
@@ -177,7 +197,7 @@ export class TextInputLabelComponent {
177
197
  */
178
198
  TextInputLabelComponent.labelCounter = 0;
179
199
  TextInputLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TextInputLabelComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
180
- TextInputLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: { labelInputID: "labelInputID", disabled: "disabled", skeleton: "skeleton", labelTemplate: "labelTemplate", textInputTemplate: "textInputTemplate", helperText: "helperText", invalidText: "invalidText", invalid: "invalid", warn: "warn", warnText: "warnText", ariaLabel: "ariaLabel", fluid: "fluid", decorator: "decorator", hideLabel: "hideLabel", inline: "inline", size: "size", enableCounter: "enableCounter", maxCount: "maxCount" }, host: { properties: { "class.cds--text-input-wrapper--inline": "this.isInlineWrapper", "class.cds--text-input-wrapper--readonly": "this.isReadonly", "class.cds--text-input--fluid": "this.fluidClass", "class.cds--text-input--fluid__skeleton": "this.fluidSkeletonClass", "class.cds--form-item": "this.labelClass", "class.cds--text-input-wrapper": "this.textInputWrapper" } }, viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
200
+ TextInputLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: { labelInputID: "labelInputID", disabled: "disabled", skeleton: "skeleton", labelTemplate: "labelTemplate", textInputTemplate: "textInputTemplate", helperText: "helperText", invalidText: "invalidText", invalid: "invalid", warn: "warn", warnText: "warnText", ariaLabel: "ariaLabel", fluid: "fluid", decorator: "decorator", hideLabel: "hideLabel", inline: "inline", size: "size", enableCounter: "enableCounter", maxCount: "maxCount" }, host: { properties: { "class.cds--text-input-wrapper--inline": "this.isInlineWrapper", "class.cds--text-input-wrapper--readonly": "this.isReadonly", "class.cds--text-input--fluid": "this.fluidClass", "class.cds--text-input--fluid__skeleton": "this.fluidSkeletonClass", "class.cds--form-item": "this.labelClass", "class.cds--text-input-wrapper": "this.textInputWrapper" } }, queries: [{ propertyName: "textInput", first: true, predicate: TextInput, descendants: true }], viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
181
201
  <ng-container *ngIf="skeleton">
182
202
  <span class="cds--label cds--skeleton"></span>
183
203
  <div class="cds--text-input cds--skeleton"></div>
@@ -483,6 +503,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
483
503
  }], wrapper: [{
484
504
  type: ViewChild,
485
505
  args: ["wrapper", { static: false }]
506
+ }], textInput: [{
507
+ type: ContentChild,
508
+ args: [TextInput, { static: false }]
486
509
  }], labelClass: [{
487
510
  type: HostBinding,
488
511
  args: ["class.cds--form-item"]
@@ -490,4 +513,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
490
513
  type: HostBinding,
491
514
  args: ["class.cds--text-input-wrapper"]
492
515
  }] } });
493
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5wdXQvdGV4dC1pbnB1dC1sYWJlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlOLFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxFQUlMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsTUFBTSxlQUFlLENBQUM7Ozs7QUFFdkI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBaUlILE1BQU0sT0FBTyx1QkFBdUI7SUF5SG5DOztPQUVHO0lBQ0gsWUFBc0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUF2RzFEOzs7VUFHRTtRQUNPLGlCQUFZLEdBQUcsaUJBQWlCLEdBQUcsdUJBQXVCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFbkY7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQWdCMUI7O1dBRUc7UUFDTSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCOztZQUVJO1FBQ0ssU0FBSSxHQUFHLEtBQUssQ0FBQztRQVV0Qjs7V0FFRztRQUNNLFVBQUssR0FBRyxLQUFLLENBQUM7UUFPdkI7OztXQUdHO1FBQ00sY0FBUyxHQUFHLEtBQUssQ0FBQztRQUUzQjs7V0FFRztRQUNNLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFeEI7OztXQUdHO1FBQ00sU0FBSSxHQUF1QixJQUFJLENBQUM7UUFFekM7OztXQUdHO1FBQ00sa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFRL0IsMERBQTBEO1FBQzFELGNBQVMsR0FBRyxDQUFDLENBQUM7UUFLdUIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUVULHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUV0RSxzRUFBc0U7UUFDOUQsa0JBQWEsR0FBNEIsSUFBSSxDQUFDO1FBQ3RELG1GQUFt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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTRIVDtpQkFDRDt3R0FHMEQsZUFBZTtzQkFBeEUsV0FBVzt1QkFBQyx1Q0FBdUM7Z0JBSVEsVUFBVTtzQkFBckUsV0FBVzt1QkFBQyx5Q0FBeUM7Z0JBSUwsVUFBVTtzQkFBMUQsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBSWdCLGtCQUFrQjtzQkFBNUUsV0FBVzt1QkFBQyx3Q0FBd0M7Z0JBVzVDLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUlHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUcsV0FBVztzQkFBbkIsS0FBSztnQkFJRyxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsU0FBUztzQkFBakIsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFNRyxTQUFTO3NCQUFqQixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFNRyxJQUFJO3NCQUFaLEtBQUs7Z0JBTUcsYUFBYTtzQkFBckIsS0FBSztnQkFNRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1tQyxPQUFPO3NCQUEvQyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRUYsVUFBVTtzQkFBOUMsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBRVcsZ0JBQWdCO3NCQUE3RCxXQUFXO3VCQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdEFmdGVyQ29udGVudEluaXQsXG5cdEFmdGVyVmlld0luaXQsXG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdEhvc3RCaW5kaW5nLFxuXHRJbnB1dCxcblx0T25DaGFuZ2VzLFxuXHRPbkRlc3Ryb3ksXG5cdFNpbXBsZUNoYW5nZXMsXG5cdFRlbXBsYXRlUmVmLFxuXHRWaWV3Q2hpbGRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuLyoqXG4gKiBHZXQgc3RhcnRlZCB3aXRoIGltcG9ydGluZyB0aGUgbW9kdWxlOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IElucHV0TW9kdWxlIH0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG4gKiBgYGBcbiAqXG4gKiBgYGBodG1sXG4gKiA8Y2RzLXRleHQtbGFiZWw+XG4gKiBcdExhYmVsXG4gKiBcdDxpbnB1dCBjZHNUZXh0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJpbnB1dC1maWVsZFwiPlxuICogPC9jZHMtdGV4dC1sYWJlbD5cbiAqIGBgYFxuICpcbiAqIFtTZWUgZGVtb10oLi4vLi4vP3BhdGg9L3N0b3J5L2NvbXBvbmVudHMtaW5wdXQtLWJhc2ljKVxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwiY2RzLXRleHQtbGFiZWwsIGlibS10ZXh0LWxhYmVsXCIsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInNrZWxldG9uXCI+XG5cdFx0XHQ8c3BhbiBjbGFzcz1cImNkcy0tbGFiZWwgY2RzLS1za2VsZXRvblwiPjwvc3Bhbj5cblx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLXRleHQtaW5wdXQgY2RzLS1za2VsZXRvblwiPjwvZGl2PlxuXHRcdDwvbmctY29udGFpbmVyPlxuXHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2tlbGV0b25cIj5cblx0XHRcdDwhLS0gbm9uLWlubGluZTogbGFiZWwtd3JhcHBlciBhYm92ZSBmaWVsZDsgaW5saW5lOiBsYWJlbCt2YWxpZGF0aW9uIHNpZGUtYnktc2lkZSAtLT5cblx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5saW5lOyBlbHNlIGlubGluZUhlYWRlclwiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS10ZXh0LWlucHV0X19sYWJlbC13cmFwcGVyXCI+XG5cdFx0XHRcdFx0PGxhYmVsXG5cdFx0XHRcdFx0XHRbZm9yXT1cImxhYmVsSW5wdXRJRFwiXG5cdFx0XHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG5cdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tbGFiZWxcIlxuXHRcdFx0XHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHRcdFx0XHQnY2RzLS1sYWJlbC0tZGlzYWJsZWQnOiBkaXNhYmxlZCxcblx0XHRcdFx0XHRcdFx0J2Nkcy0tdmlzdWFsbHktaGlkZGVuJzogaGlkZUxhYmVsXG5cdFx0XHRcdFx0XHR9XCI+XG5cdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgKm5nSWY9XCJsYWJlbFRlbXBsYXRlOyBlbHNlIGxhYmVsQ29udGVudFwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNsYWJlbENvbnRlbnQ+XG5cdFx0XHRcdFx0XHRcdDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblx0XHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdFx0PC9sYWJlbD5cblx0XHRcdFx0XHQ8c3BhblxuXHRcdFx0XHRcdFx0Km5nSWY9XCJlbmFibGVDb3VudGVyICYmIG1heENvdW50XCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1sYWJlbFwiXG5cdFx0XHRcdFx0XHRbbmdDbGFzc109XCJ7J2Nkcy0tbGFiZWwtLWRpc2FibGVkJzogZGlzYWJsZWR9XCJcblx0XHRcdFx0XHRcdGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuXHRcdFx0XHRcdFx0e3t0ZXh0Q291bnR9fS97e21heENvdW50fX1cblx0XHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9uZy1jb250YWluZXI+XG5cblx0XHRcdDxuZy10ZW1wbGF0ZSAjaW5saW5lSGVhZGVyPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS10ZXh0LWlucHV0X19sYWJlbC1oZWxwZXItd3JhcHBlclwiPlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLXRleHQtaW5wdXRfX2xhYmVsLXdyYXBwZXJcIj5cblx0XHRcdFx0XHRcdDxsYWJlbFxuXHRcdFx0XHRcdFx0XHRbZm9yXT1cImxhYmVsSW5wdXRJRFwiXG5cdFx0XHRcdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLWxhYmVsXCJcblx0XHRcdFx0XHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHRcdFx0XHRcdCdjZHMtLWxhYmVsLS1kaXNhYmxlZCc6IGRpc2FibGVkLFxuXHRcdFx0XHRcdFx0XHRcdCdjZHMtLXZpc3VhbGx5LWhpZGRlbic6IGhpZGVMYWJlbCxcblx0XHRcdFx0XHRcdFx0XHQnY2RzLS1sYWJlbC0taW5saW5lJzogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHQnY2RzLS1sYWJlbC0taW5saW5lLS1zbSc6IHNpemUgPT09ICdzbScsXG5cdFx0XHRcdFx0XHRcdFx0J2Nkcy0tbGFiZWwtLWlubGluZS0tbWQnOiBzaXplID09PSAnbWQnLFxuXHRcdFx0XHRcdFx0XHRcdCdjZHMtLWxhYmVsLS1pbmxpbmUtLWxnJzogc2l6ZSA9PT0gJ2xnJ1xuXHRcdFx0XHRcdFx0XHR9XCI+XG5cdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAqbmdJZj1cImxhYmVsVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdDwvbGFiZWw+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmbHVpZFwiPlxuXHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ2YWxpZGF0aW9uT3JIZWxwZXJcIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxuXG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdGNsYXNzPVwiY2RzLS10ZXh0LWlucHV0X19maWVsZC1vdXRlci13cmFwcGVyXCJcblx0XHRcdFx0W25nQ2xhc3NdPVwieydjZHMtLXRleHQtaW5wdXRfX2ZpZWxkLW91dGVyLXdyYXBwZXItLWlubGluZSc6IGlubGluZX1cIj5cblx0XHRcdDxkaXZcblx0XHRcdFx0Y2xhc3M9XCJjZHMtLXRleHQtaW5wdXRfX2ZpZWxkLXdyYXBwZXJcIlxuXHRcdFx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHRcdFx0J2Nkcy0tdGV4dC1pbnB1dF9fZmllbGQtd3JhcHBlci0td2FybmluZyc6IHdhcm4sXG5cdFx0XHRcdFx0J2Nkcy0tdGV4dC1pbnB1dF9fZmllbGQtd3JhcHBlci0tZGVjb3JhdG9yJzogISFkZWNvcmF0b3Jcblx0XHRcdFx0fVwiXG5cdFx0XHRcdFx0W2F0dHIuZGF0YS1pbnZhbGlkXT1cIihpbnZhbGlkID8gdHJ1ZSA6IG51bGwpXCJcblx0XHRcdFx0XHQjd3JhcHBlcj5cblx0XHRcdFx0XHQ8c3ZnXG5cdFx0XHRcdFx0XHQqbmdJZj1cImludmFsaWQgJiYgIXdhcm5cIlxuXHRcdFx0XHRcdFx0Y2RzSWNvbj1cIndhcm5pbmctLWZpbGxlZFwiXG5cdFx0XHRcdFx0XHRzaXplPVwiMTZcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXRleHQtaW5wdXRfX2ludmFsaWQtaWNvblwiPlxuXHRcdFx0XHRcdDwvc3ZnPlxuXHRcdFx0XHRcdDxzdmdcblx0XHRcdFx0XHRcdCpuZ0lmPVwiIWludmFsaWQgJiYgd2FyblwiXG5cdFx0XHRcdFx0XHRjZHNJY29uPVwid2FybmluZy0tYWx0LS1maWxsZWRcIlxuXHRcdFx0XHRcdFx0c2l6ZT1cIjE2XCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS10ZXh0LWlucHV0X19pbnZhbGlkLWljb24gY2RzLS10ZXh0LWlucHV0X19pbnZhbGlkLWljb24tLXdhcm5pbmdcIj5cblx0XHRcdFx0XHQ8L3N2Zz5cblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgKm5nSWY9XCJ0ZXh0SW5wdXRUZW1wbGF0ZTsgZWxzZSB0ZXh0SW5wdXRDb250ZW50XCIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGV4dElucHV0VGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjdGV4dElucHV0Q29udGVudD5cblx0XHRcdFx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIltjZHNUZXh0XSxbaWJtVGV4dF0saW5wdXRbdHlwZT10ZXh0XSxkaXZcIj48L25nLWNvbnRlbnQ+XG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiZGVjb3JhdG9yXCI+XG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS10ZXh0LWlucHV0X19maWVsZC1pbm5lci13cmFwcGVyLS1kZWNvcmF0b3JcIj5cblx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlY29yYXRvclwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJmbHVpZFwiPlxuXHRcdFx0XHRcdFx0PGhyIGNsYXNzPVwiY2RzLS10ZXh0LWlucHV0X19kaXZpZGVyXCIgLz5cblx0XHRcdFx0XHRcdDxkaXYgKm5nSWY9XCJpbnZhbGlkXCIgY2xhc3M9XCJjZHMtLWZvcm0tcmVxdWlyZW1lbnRcIj5cblx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKGludmFsaWRUZXh0KVwiPnt7aW52YWxpZFRleHR9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgKm5nSWY9XCJpc1RlbXBsYXRlKGludmFsaWRUZXh0KVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImludmFsaWRUZXh0XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PGRpdiAqbmdJZj1cIiFpbnZhbGlkICYmIHdhcm5cIiBjbGFzcz1cImNkcy0tZm9ybS1yZXF1aXJlbWVudFwiPlxuXHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGVtcGxhdGUod2FyblRleHQpXCI+e3t3YXJuVGV4dH19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAqbmdJZj1cImlzVGVtcGxhdGUod2FyblRleHQpXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwid2FyblRleHRcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWZsdWlkICYmICFpbmxpbmVcIj5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInZhbGlkYXRpb25PckhlbHBlclwiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvbmctY29udGFpbmVyPlxuXG5cdFx0PG5nLXRlbXBsYXRlICN2YWxpZGF0aW9uT3JIZWxwZXI+XG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdCpuZ0lmPVwiaGVscGVyVGV4dCAmJiAhaW52YWxpZCAmJiAhd2FyblwiXG5cdFx0XHRcdGNsYXNzPVwiY2RzLS1mb3JtX19oZWxwZXItdGV4dFwiXG5cdFx0XHRcdFtuZ0NsYXNzXT1cInsnY2RzLS1mb3JtX19oZWxwZXItdGV4dC0tZGlzYWJsZWQnOiBkaXNhYmxlZCwgJ2Nkcy0tZm9ybV9faGVscGVyLXRleHQtLWlubGluZSc6IGlubGluZX1cIj5cblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKGhlbHBlclRleHQpXCI+e3toZWxwZXJUZXh0fX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0PG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNUZW1wbGF0ZShoZWxwZXJUZXh0KVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlbHBlclRleHRcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2ICpuZ0lmPVwiaW52YWxpZFwiIGNsYXNzPVwiY2RzLS1mb3JtLXJlcXVpcmVtZW50XCI+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZShpbnZhbGlkVGV4dClcIj57e2ludmFsaWRUZXh0fX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0PG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNUZW1wbGF0ZShpbnZhbGlkVGV4dClcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJpbnZhbGlkVGV4dFwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgKm5nSWY9XCIhaW52YWxpZCAmJiB3YXJuXCIgY2xhc3M9XCJjZHMtLWZvcm0tcmVxdWlyZW1lbnRcIj5cblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKHdhcm5UZXh0KVwiPnt7d2FyblRleHR9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgKm5nSWY9XCJpc1RlbXBsYXRlKHdhcm5UZXh0KVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIndhcm5UZXh0XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDwvZGl2PlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdGBcbn0pXG5leHBvcnQgY2xhc3MgVGV4dElucHV0TGFiZWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS10ZXh0LWlucHV0LXdyYXBwZXItLWlubGluZVwiKSBnZXQgaXNJbmxpbmVXcmFwcGVyKCkge1xuXHRcdHJldHVybiB0aGlzLmlubGluZTtcblx0fVxuXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tdGV4dC1pbnB1dC13cmFwcGVyLS1yZWFkb25seVwiKSBnZXQgaXNSZWFkb25seSgpIHtcblx0XHRyZXR1cm4gdGhpcy53cmFwcGVyPy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJpbnB1dFwiKT8ucmVhZE9ubHkgPz8gZmFsc2U7XG5cdH1cblxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLXRleHQtaW5wdXQtLWZsdWlkXCIpIGdldCBmbHVpZENsYXNzKCkge1xuXHRcdHJldHVybiB0aGlzLmZsdWlkICYmICF0aGlzLnNrZWxldG9uO1xuXHR9XG5cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS10ZXh0LWlucHV0LS1mbHVpZF9fc2tlbGV0b25cIikgZ2V0IGZsdWlkU2tlbGV0b25DbGFzcygpIHtcblx0XHRyZXR1cm4gdGhpcy5mbHVpZCAmJiB0aGlzLnNrZWxldG9uO1xuXHR9XG5cdC8qKlxuXHQgKiBVc2VkIHRvIGJ1aWxkIHRoZSBpZCBvZiB0aGUgaW5wdXQgaXRlbSBhc3NvY2lhdGVkIHdpdGggdGhlIGBMYWJlbGAuXG5cdCAqL1xuXHRzdGF0aWMgbGFiZWxDb3VudGVyID0gMDtcblx0LyoqXG5cdCAqIFRoZSBpZCBvZiB0aGUgaW5wdXQgaXRlbSBhc3NvY2lhdGVkIHdpdGggdGhlIGBMYWJlbGAuIFRoaXMgdmFsdWUgaXMgYWxzbyB1c2VkIHRvIGFzc29jaWF0ZSB0aGUgYExhYmVsYCB3aXRoXG5cdCAqIGl0cyBpbnB1dCBjb3VudGVycGFydCB0aHJvdWdoIHRoZSAnZm9yJyBhdHRyaWJ1dGUuXG5cdCovXG5cdEBJbnB1dCgpIGxhYmVsSW5wdXRJRCA9IFwiaWJtLXRleHQtaW5wdXQtXCIgKyBUZXh0SW5wdXRMYWJlbENvbXBvbmVudC5sYWJlbENvdW50ZXIrKztcblxuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCBmb3IgYSBkaXNhYmxlZCBsYWJlbC5cblx0ICovXG5cdEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIGZvciBhIGxvYWRpbmcgbGFiZWwuXG5cdCAqL1xuXHRASW5wdXQoKSBza2VsZXRvbiA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBIZWxwZXIgaW5wdXQgcHJvcGVydHkgZm9yIGVhc2Ugb2YgbWlncmF0aW9uXG5cdCAqIFNpbmNlIHdlIGNhbm5vdCBwYXNzIG5nLWNvbnRlbnQgZG93biBlYXNpbHkgZnJvbSBsYWJlbCBjb21wb25lbnQsIHdlIHdpbGwgYWNjZXB0IHRoZSB0ZW1wbGF0ZXNcblx0ICovXG5cdEBJbnB1dCgpIGxhYmVsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cdEBJbnB1dCgpIHRleHRJbnB1dFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXHQvKipcblx0ICogT3B0aW9uYWwgaGVscGVyIHRleHQgdGhhdCBhcHBlYXJzIHVuZGVyIHRoZSBsYWJlbC5cblx0ICovXG5cdEBJbnB1dCgpIGhlbHBlclRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBpbnZhbGlkIHRleHQuXG5cdCAqL1xuXHRASW5wdXQoKSBpbnZhbGlkVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pjtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgZm9yIGFuIGludmFsaWQgbGFiZWwgY29tcG9uZW50LlxuXHQgKi9cblx0QElucHV0KCkgaW52YWxpZCA9IGZhbHNlO1xuXHQvKipcblx0ICAqIFNldCB0byBgdHJ1ZWAgdG8gc2hvdyBhIHdhcm5pbmcgKGNvbnRlbnRzIHNldCBieSB3YXJuaW5nVGV4dClcblx0ICAqL1xuXHRASW5wdXQoKSB3YXJuID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXRzIHRoZSB3YXJuaW5nIHRleHRcblx0ICovXG5cdEBJbnB1dCgpIHdhcm5UZXh0OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXHQvKipcblx0ICogU2V0IHRoZSBhcmlhbGFiZWwgZm9yIGxhYmVsXG5cdCAqL1xuXHRASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZztcblxuXHQvKipcblx0ICogRXhwZXJpbWVudGFsOiBlbmFibGUgZmx1aWQgc3RhdGVcblx0ICovXG5cdEBJbnB1dCgpIGZsdWlkID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqICoqRXhwZXJpbWVudGFsKio6IE9wdGlvbmFsIGRlY29yYXRvciAoZS5nLiBBSSBsYWJlbCkuXG5cdCAqL1xuXHRASW5wdXQoKSBkZWNvcmF0b3I6IFRlbXBsYXRlUmVmPGFueT47XG5cblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgdG8gaGlkZSB0aGUgbGFiZWwgdmlzdWFsbHksIGJ1dCBrZWVwIGFjY2Vzc2libGUgdG9cblx0ICogc2NyZWVuIHJlYWRlcnMuXG5cdCAqL1xuXHRASW5wdXQoKSBoaWRlTGFiZWwgPSBmYWxzZTtcblxuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCB0byByZW5kZXIgdGhlIGxhYmVsIGFuZCBmaWVsZCBzaWRlLWJ5LXNpZGUgaW5zdGVhZCBvZiBzdGFja2VkLlxuXHQgKi9cblx0QElucHV0KCkgaW5saW5lID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIFRoZSByZW5kZXIgc2l6ZSBmb3IgdGhlIGBUZXh0SW5wdXRgLiBVc2VkIHRvIGNvbXB1dGUgdGhlIElOTElORSBsYWJlbCBzaXplXG5cdCAqIHZhcmlhbnQgY2xhc3MgKGBjZHMtLWxhYmVsLS1pbmxpbmUtLXtzaXplfWApLlxuXHQgKi9cblx0QElucHV0KCkgc2l6ZTogXCJzbVwiIHwgXCJtZFwiIHwgXCJsZ1wiID0gXCJtZFwiO1xuXG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIChgbWF4Q291bnRgIG11c3QgYmUgc2V0KSB0byBkaXNwbGF5cyBhIGxpdmUgY2hhcmFjdGVyXG5cdCAqIGNvdW50ZXIgYWxvbmdzaWRlIHRoZSBsYWJlbC5cblx0ICovXG5cdEBJbnB1dCgpIGVuYWJsZUNvdW50ZXIgPSBmYWxzZTtcblxuXHQvKipcblx0ICogTWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyAob3Igd29yZHMpIGFsbG93ZWQuIFJlcXVpcmVkIGZvciB0aGVcblx0ICogY291bnRlciB0byBkaXNwbGF5LlxuXHQgKi9cblx0QElucHV0KCkgbWF4Q291bnQ6IG51bWJlcjtcblxuXHQvLyBUcmFja3MgY3VycmVudCBjaGFyYWN0ZXIgY291bnQgZm9yIHRoZSBjb3VudGVyIGRpc3BsYXkuXG5cdHRleHRDb3VudCA9IDA7XG5cblx0Ly8gQHRzLWlnbm9yZVxuXHRAVmlld0NoaWxkKFwid3JhcHBlclwiLCB7IHN0YXRpYzogZmFsc2UgfSkgd3JhcHBlcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1mb3JtLWl0ZW1cIikgbGFiZWxDbGFzcyA9IHRydWU7XG5cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS10ZXh0LWlucHV0LXdyYXBwZXJcIikgdGV4dElucHV0V3JhcHBlciA9IHRydWU7XG5cblx0Ly8gQ2FjaGVkIHJlZmVyZW5jZSB0byB0aGUgaW5wdXQgZWxlbWVudCwgc2V0IG9uY2UgaW4gbmdBZnRlclZpZXdJbml0LlxuXHRwcml2YXRlIF9pbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblx0Ly8gQ2FjaGVkIGxpc3RlbmVyIHNvIGl0IGNhbiBiZSByZW1vdmVkIHByZWNpc2VseSAoYXZvaWRzIGFub255bW91cy1mdW5jdGlvbiBsZWFrKS5cblx0cHJpdmF0ZSBfaW5wdXRMaXN0ZW5lcjogKChlOiBFdmVudCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBMYWJlbC5cblx0ICovXG5cdGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIGlkIG9uIHRoZSBpbnB1dCBpdGVtIGFzc29jaWF0ZWQgd2l0aCB0aGUgYExhYmVsYCBhbmQgYXR0YWNoZXMgdGhlXG5cdCAqIGNvdW50ZXIgbGlzdGVuZXIgd2hlbiBgZW5hYmxlQ291bnRlcmAgaXMgYWxyZWFkeSBgdHJ1ZWAgb24gZmlyc3QgcmVuZGVyLlxuXHQgKi9cblx0bmdBZnRlclZpZXdJbml0KCkge1xuXHRcdGlmICh0aGlzLndyYXBwZXIpIHtcblx0XHRcdC8vIFByaW9yaXRpemUgc2V0dGluZyBpZCB0byBgaW5wdXRgIG92ZXIgZGl2XG5cdFx0XHRjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLndyYXBwZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiaW5wdXRcIik7XG5cdFx0XHRpZiAoaW5wdXRFbGVtZW50KSB7XG5cdFx0XHRcdC8vIGF2b2lkIG92ZXJyaWRpbmcgaWRzIGFscmVhZHkgc2V0IGJ5IHRoZSB1c2VyLCByZXVzZSBpdCBpbnN0ZWFkXG5cdFx0XHRcdGlmIChpbnB1dEVsZW1lbnQuaWQpIHtcblx0XHRcdFx0XHR0aGlzLmxhYmVsSW5wdXRJRCA9IGlucHV0RWxlbWVudC5pZDtcblx0XHRcdFx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpbnB1dEVsZW1lbnQuc2V0QXR0cmlidXRlKFwiaWRcIiwgdGhpcy5sYWJlbElucHV0SUQpO1xuXG5cdFx0XHRcdHRoaXMuX2lucHV0RWxlbWVudCA9IGlucHV0RWxlbWVudDtcblxuXHRcdFx0XHRpZiAodGhpcy5lbmFibGVDb3VudGVyKSB7XG5cdFx0XHRcdFx0dGhpcy50ZXh0Q291bnQgPSBpbnB1dEVsZW1lbnQudmFsdWU/Lmxlbmd0aCB8fCAwO1xuXHRcdFx0XHRcdHRoaXMuX2F0dGFjaENvdW50ZXJMaXN0ZW5lcigpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBkaXZFbGVtZW50ID0gdGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcImRpdlwiKTtcblx0XHRcdGlmIChkaXZFbGVtZW50KSB7XG5cdFx0XHRcdGlmIChkaXZFbGVtZW50LmlkKSB7XG5cdFx0XHRcdFx0dGhpcy5sYWJlbElucHV0SUQgPSBkaXZFbGVtZW50LmlkO1xuXHRcdFx0XHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRpdkVsZW1lbnQuc2V0QXR0cmlidXRlKFwiaWRcIiwgdGhpcy5sYWJlbElucHV0SUQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBBdHRhY2gvcmVtb3ZlIGxpc3RlbmVyIGFuZCBzZWVkIGB0ZXh0Q291bnRgIGZyb20gdGhlIHRleHRhcmVhJ3MgY3VycmVudCB2YWx1ZS5cblx0ICogQHBhcmFtIGNoYW5nZXNcblx0ICovXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcblx0XHRpZiAoY2hhbmdlcy5lbmFibGVDb3VudGVyICYmICFjaGFuZ2VzLmVuYWJsZUNvdW50ZXIuZmlyc3RDaGFuZ2UpIHtcblx0XHRcdGlmIChjaGFuZ2VzLmVuYWJsZUNvdW50ZXIuY3VycmVudFZhbHVlKSB7XG5cdFx0XHRcdGlmICh0aGlzLl9pbnB1dEVsZW1lbnQpIHtcblx0XHRcdFx0XHR0aGlzLnRleHRDb3VudCA9IHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZT8ubGVuZ3RoIHx8IDA7XG5cdFx0XHRcdFx0dGhpcy5fYXR0YWNoQ291bnRlckxpc3RlbmVyKCk7XG5cdFx0XHRcdFx0dGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuX2RldGFjaENvdW50ZXJMaXN0ZW5lcigpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcblx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCkge1xuXHRcdHRoaXMuX2RldGFjaENvdW50ZXJMaXN0ZW5lcigpO1xuXHR9XG5cblx0cHVibGljIGlzVGVtcGxhdGUodmFsdWUpIHtcblx0XHRyZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcblx0fVxuXG5cdC8qKlxuXHQgKiBBdHRhY2hlcyB0aGUgaW5wdXQgZXZlbnQgbGlzdGVuZXIsIGVuc3VyaW5nIGl0IGlzIG5ldmVyIGFkZGVkIHR3aWNlLlxuXHQgKi9cblx0cHJpdmF0ZSBfYXR0YWNoQ291bnRlckxpc3RlbmVyKCk6IHZvaWQge1xuXHRcdHRoaXMuX2RldGFjaENvdW50ZXJMaXN0ZW5lcigpO1xuXHRcdGlmICghdGhpcy5faW5wdXRFbGVtZW50KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRoaXMuX2lucHV0TGlzdGVuZXIgPSAoZTogRXZlbnQpID0+IHtcblx0XHRcdHRoaXMudGV4dENvdW50ID0gKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlPy5sZW5ndGggfHwgMDtcblx0XHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdH07XG5cdFx0dGhpcy5faW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJpbnB1dFwiLCB0aGlzLl9pbnB1dExpc3RlbmVyKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZW1vdmVzIHRoZSBpbnB1dCBldmVudCBsaXN0ZW5lciBhbmQgY2xlYXJzIHRoZSBjYWNoZWQgcmVmZXJlbmNlLlxuXHQgKi9cblx0cHJpdmF0ZSBfZGV0YWNoQ291bnRlckxpc3RlbmVyKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLl9pbnB1dExpc3RlbmVyICYmIHRoaXMuX2lucHV0RWxlbWVudCkge1xuXHRcdFx0dGhpcy5faW5wdXRFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJpbnB1dFwiLCB0aGlzLl9pbnB1dExpc3RlbmVyKTtcblx0XHRcdHRoaXMuX2lucHV0TGlzdGVuZXIgPSBudWxsO1xuXHRcdH1cblx0fVxufVxuIl19
516
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5wdXQvdGV4dC1pbnB1dC1sYWJlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlOLFNBQVMsRUFDVCxZQUFZLEVBRVosV0FBVyxFQUNYLEtBQUssRUFJTCxXQUFXLEVBQ1gsU0FBUyxFQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFFOUM7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBaUlILE1BQU0sT0FBTyx1QkFBdUI7SUFnSW5DOztPQUVHO0lBQ0gsWUFBc0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUE5RzFEOzs7VUFHRTtRQUNPLGlCQUFZLEdBQUcsaUJBQWlCLEdBQUcsdUJBQXVCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFbkY7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQWdCMUI7O1dBRUc7UUFDTSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCOztZQUVJO1FBQ0ssU0FBSSxHQUFHLEtBQUssQ0FBQztRQVV0Qjs7V0FFRztRQUNNLFVBQUssR0FBRyxLQUFLLENBQUM7UUFPdkI7OztXQUdHO1FBQ00sY0FBUyxHQUFHLEtBQUssQ0FBQztRQUUzQjs7V0FFRztRQUNNLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFeEI7OztXQUdHO1FBQ00sU0FBSSxHQUF1QixJQUFJLENBQUM7UUFFekM7OztXQUdHO1FBQ00sa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFRL0IsMERBQTBEO1FBQzFELGNBQVMsR0FBRyxDQUFDLENBQUM7UUFRdUIsZUFB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LEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFNRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFJRyxVQUFVO3NCQUFsQixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUcsT0FBTztzQkFBZixLQUFLO2dCQUlHLElBQUk7c0JBQVosS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBTUcsU0FBUztzQkFBakIsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBTUcsSUFBSTtzQkFBWixLQUFLO2dCQU1HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBTUcsUUFBUTtzQkFBaEIsS0FBSztnQkFNbUMsT0FBTztzQkFBL0MsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUdLLFNBQVM7c0JBQXBELFlBQVk7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFTCxVQUFVO3NCQUE5QyxXQUFXO3VCQUFDLHNCQUFzQjtnQkFFVyxnQkFBZ0I7c0JBQTdELFdBQVc7dUJBQUMsK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0QWZ0ZXJDb250ZW50SW5pdCxcblx0QWZ0ZXJWaWV3SW5pdCxcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXG5cdENvbXBvbmVudCxcblx0Q29udGVudENoaWxkLFxuXHRFbGVtZW50UmVmLFxuXHRIb3N0QmluZGluZyxcblx0SW5wdXQsXG5cdE9uQ2hhbmdlcyxcblx0T25EZXN0cm95LFxuXHRTaW1wbGVDaGFuZ2VzLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NoaWxkXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgc3RhcnRXaXRoIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBUZXh0SW5wdXQgfSBmcm9tIFwiLi9pbnB1dC5kaXJlY3RpdmVcIjtcblxuLyoqXG4gKiBHZXQgc3RhcnRlZCB3aXRoIGltcG9ydGluZyB0aGUgbW9kdWxlOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IElucHV0TW9kdWxlIH0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG4gKiBgYGBcbiAqXG4gKiBgYGBodG1sXG4gKiA8Y2RzLXRleHQtbGFiZWw+XG4gKiBcdExhYmVsXG4gKiBcdDxpbnB1dCBjZHNUZXh0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJpbnB1dC1maWVsZFwiPlxuICogPC9jZHMtdGV4dC1sYWJlbD5cbiAqIGBgYFxuICpcbiAqIFtTZWUgZGVtb10oLi4vLi4vP3BhdGg9L3N0b3J5L2NvbXBvbmVudHMtaW5wdXQtLWJhc2ljKVxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwiY2RzLXRleHQtbGFiZWwsIGlibS10ZXh0LWxhYmVsXCIsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInNrZWxldG9uXCI+XG5cdFx0XHQ8c3BhbiBjbGFzcz1cImNkcy0tbGFiZWwgY2RzLS1za2VsZXRvblwiPjwvc3Bhbj5cblx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLXRleHQtaW5wdXQgY2RzLS1za2VsZXRvblwiPjwvZGl2PlxuXHRcdDwvbmctY29udGFpbmVyPlxuXHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2tlbGV0b25cIj5cblx0XHRcdDwhLS0gbm9uLWlubGluZTogbGFiZWwtd3JhcHBlciBhYm92ZSBmaWVsZDsgaW5saW5lOiBsYWJlbCt2YWxpZGF0aW9uIHNpZGUtYnktc2lkZSAtLT5cblx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5saW5lOyBlbHNlIGlubGluZUhlYWRlclwiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS10ZXh0LWlucHV0X19sYWJlbC13cmFwcGVyXCI+XG5cdFx0XHRcdFx0PGxhYmVsXG5cdFx0XHRcdFx0XHRbZm9yXT1cImxhYmVsSW5wdXRJRFwiXG5cdFx0XHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG5cdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tbGFiZWxcIlxuXHRcdFx0XHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHRcdFx0XHQnY2RzLS1sYWJlbC0tZGlzYWJsZWQnOiBkaXNhYmxlZCxcblx0XHRcdFx0XHRcdFx0J2Nkcy0tdmlzdWFsbHktaGlkZGVuJzogaGlkZUxhYmVsXG5cdFx0XHRcdFx0XHR9XCI+XG5cdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgKm5nSWY9XCJsYWJlbFRlbXBsYXRlOyBlbHNlIGxhYmVsQ29udGVudFwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNsYWJlbENvbnRlbnQ+XG5cdFx0XHRcdFx0XHRcdDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblx0XHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdFx0PC9sYWJlbD5cblx0XHRcdFx0XHQ8c3BhblxuXHRcdFx0XHRcdFx0Km5nSWY9XCJlbmFibGVDb3VudGVyICYmIG1heENvdW50XCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1sYWJlbFwiXG5cdFx0XHRcdFx0XHRbbmdDbGFzc109XCJ7J2Nkcy0tbGFiZWwtLWRpc2FibGVkJzogZGlzYWJsZWR9XCJcblx0XHRcdFx0XHRcdGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuXHRcdFx0XHRcdFx0e3t0ZXh0Q291bnR9fS97e21heENvdW50fX1cblx0XHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9uZy1jb250YWluZXI+XG5cblx0XHRcdDxuZy10ZW1wbGF0ZSAjaW5saW5lSGVhZGVyPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS10ZXh0LWlucHV0X19sYWJlbC1oZWxwZXItd3JhcHBlclwiPlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLXRleHQtaW5wdXRfX2xhYmVsLXdyYXBwZXJcIj5cblx0XHRcdFx0XHRcdDxsYWJlbFxuXHRcdFx0XHRcdFx0XHRbZm9yXT1cImxhYmVsSW5wdXRJRFwiXG5cdFx0XHRcdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLWxhYmVsXCJcblx0XHRcdFx0XHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHRcdFx0XHRcdCdjZHMtLWxhYmVsLS1kaXNhYmxlZCc6IGRpc2FibGVkLFxuXHRcdFx0XHRcdFx0XHRcdCdjZHMtLXZpc3VhbGx5LWhpZGRlbic6IGhpZGVMYWJlbCxcblx0XHRcdFx0XHRcdFx0XHQnY2RzLS1sYWJlbC0taW5saW5lJzogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHQnY2RzLS1sYWJlbC0taW5saW5lLS1zbSc6IHNpemUgPT09ICdzbScsXG5cdFx0XHRcdFx0XHRcdFx0J2Nkcy0tbGFiZWwtLWlubGluZS0tbWQnOiBzaXplID09PSAnbWQnLFxuXHRcdFx0XHRcdFx0XHRcdCdjZHMtLWxhYmVsLS1pbmxpbmUtLWxnJzogc2l6ZSA9PT0gJ2xnJ1xuXHRcdFx0XHRcdFx0XHR9XCI+XG5cdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAqbmdJZj1cImxhYmVsVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdDwvbGFiZWw+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmbHVpZFwiPlxuXHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ2YWxpZGF0aW9uT3JIZWxwZXJcIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxuXG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdGNsYXNzPVwiY2RzLS10ZXh0LWlucHV0X19maWVsZC1vdXRlci13cmFwcGVyXCJcblx0XHRcdFx0W25nQ2xhc3NdPVwieydjZHMtLXRleHQtaW5wdXRfX2ZpZWxkLW91dGVyLXdyYXBwZXItLWlubGluZSc6IGlubGluZX1cIj5cblx0XHRcdDxkaXZcblx0XHRcdFx0Y2xhc3M9XCJjZHMtLXRleHQtaW5wdXRfX2ZpZWxkLXdyYXBwZXJcIlxuXHRcdFx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHRcdFx0J2Nkcy0tdGV4dC1pbnB1dF9fZmllbGQtd3JhcHBlci0td2FybmluZyc6IHdhcm4sXG5cdFx0XHRcdFx0J2Nkcy0tdGV4dC1pbnB1dF9fZmllbGQtd3JhcHBlci0tZGVjb3JhdG9yJzogISFkZWNvcmF0b3Jcblx0XHRcdFx0fVwiXG5cdFx0XHRcdFx0W2F0dHIuZGF0YS1pbnZhbGlkXT1cIihpbnZhbGlkID8gdHJ1ZSA6IG51bGwpXCJcblx0XHRcdFx0XHQjd3JhcHBlcj5cblx0XHRcdFx0XHQ8c3ZnXG5cdFx0XHRcdFx0XHQqbmdJZj1cImludmFsaWQgJiYgIXdhcm5cIlxuXHRcdFx0XHRcdFx0Y2RzSWNvbj1cIndhcm5pbmctLWZpbGxlZFwiXG5cdFx0XHRcdFx0XHRzaXplPVwiMTZcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXRleHQtaW5wdXRfX2ludmFsaWQtaWNvblwiPlxuXHRcdFx0XHRcdDwvc3ZnPlxuXHRcdFx0XHRcdDxzdmdcblx0XHRcdFx0XHRcdCpuZ0lmPVwiIWludmFsaWQgJiYgd2FyblwiXG5cdFx0XHRcdFx0XHRjZHNJY29uPVwid2FybmluZy0tYWx0LS1maWxsZWRcIlxuXHRcdFx0XHRcdFx0c2l6ZT1cIjE2XCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS10ZXh0LWlucHV0X19pbnZhbGlkLWljb24gY2RzLS10ZXh0LWlucHV0X19pbnZhbGlkLWljb24tLXdhcm5pbmdcIj5cblx0XHRcdFx0XHQ8L3N2Zz5cblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgKm5nSWY9XCJ0ZXh0SW5wdXRUZW1wbGF0ZTsgZWxzZSB0ZXh0SW5wdXRDb250ZW50XCIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGV4dElucHV0VGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjdGV4dElucHV0Q29udGVudD5cblx0XHRcdFx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIltjZHNUZXh0XSxbaWJtVGV4dF0saW5wdXRbdHlwZT10ZXh0XSxkaXZcIj48L25nLWNvbnRlbnQ+XG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiZGVjb3JhdG9yXCI+XG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS10ZXh0LWlucHV0X19maWVsZC1pbm5lci13cmFwcGVyLS1kZWNvcmF0b3JcIj5cblx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlY29yYXRvclwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJmbHVpZFwiPlxuXHRcdFx0XHRcdFx0PGhyIGNsYXNzPVwiY2RzLS10ZXh0LWlucHV0X19kaXZpZGVyXCIgLz5cblx0XHRcdFx0XHRcdDxkaXYgKm5nSWY9XCJpbnZhbGlkXCIgY2xhc3M9XCJjZHMtLWZvcm0tcmVxdWlyZW1lbnRcIj5cblx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKGludmFsaWRUZXh0KVwiPnt7aW52YWxpZFRleHR9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgKm5nSWY9XCJpc1RlbXBsYXRlKGludmFsaWRUZXh0KVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImludmFsaWRUZXh0XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PGRpdiAqbmdJZj1cIiFpbnZhbGlkICYmIHdhcm5cIiBjbGFzcz1cImNkcy0tZm9ybS1yZXF1aXJlbWVudFwiPlxuXHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGVtcGxhdGUod2FyblRleHQpXCI+e3t3YXJuVGV4dH19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAqbmdJZj1cImlzVGVtcGxhdGUod2FyblRleHQpXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwid2FyblRleHRcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWZsdWlkICYmICFpbmxpbmVcIj5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInZhbGlkYXRpb25PckhlbHBlclwiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvbmctY29udGFpbmVyPlxuXG5cdFx0PG5nLXRlbXBsYXRlICN2YWxpZGF0aW9uT3JIZWxwZXI+XG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdCpuZ0lmPVwiaGVscGVyVGV4dCAmJiAhaW52YWxpZCAmJiAhd2FyblwiXG5cdFx0XHRcdGNsYXNzPVwiY2RzLS1mb3JtX19oZWxwZXItdGV4dFwiXG5cdFx0XHRcdFtuZ0NsYXNzXT1cInsnY2RzLS1mb3JtX19oZWxwZXItdGV4dC0tZGlzYWJsZWQnOiBkaXNhYmxlZCwgJ2Nkcy0tZm9ybV9faGVscGVyLXRleHQtLWlubGluZSc6IGlubGluZX1cIj5cblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKGhlbHBlclRleHQpXCI+e3toZWxwZXJUZXh0fX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0PG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNUZW1wbGF0ZShoZWxwZXJUZXh0KVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlbHBlclRleHRcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2ICpuZ0lmPVwiaW52YWxpZFwiIGNsYXNzPVwiY2RzLS1mb3JtLXJlcXVpcmVtZW50XCI+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZShpbnZhbGlkVGV4dClcIj57e2ludmFsaWRUZXh0fX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0PG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNUZW1wbGF0ZShpbnZhbGlkVGV4dClcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJpbnZhbGlkVGV4dFwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgKm5nSWY9XCIhaW52YWxpZCAmJiB3YXJuXCIgY2xhc3M9XCJjZHMtLWZvcm0tcmVxdWlyZW1lbnRcIj5cblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKHdhcm5UZXh0KVwiPnt7d2FyblRleHR9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgKm5nSWY9XCJpc1RlbXBsYXRlKHdhcm5UZXh0KVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIndhcm5UZXh0XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDwvZGl2PlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdGBcbn0pXG5leHBvcnQgY2xhc3MgVGV4dElucHV0TGFiZWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS10ZXh0LWlucHV0LXdyYXBwZXItLWlubGluZVwiKSBnZXQgaXNJbmxpbmVXcmFwcGVyKCkge1xuXHRcdHJldHVybiB0aGlzLmlubGluZTtcblx0fVxuXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tdGV4dC1pbnB1dC13cmFwcGVyLS1yZWFkb25seVwiKSBnZXQgaXNSZWFkb25seSgpIHtcblx0XHRyZXR1cm4gdGhpcy53cmFwcGVyPy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJpbnB1dFwiKT8ucmVhZE9ubHkgPz8gZmFsc2U7XG5cdH1cblxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLXRleHQtaW5wdXQtLWZsdWlkXCIpIGdldCBmbHVpZENsYXNzKCkge1xuXHRcdHJldHVybiB0aGlzLmZsdWlkICYmICF0aGlzLnNrZWxldG9uO1xuXHR9XG5cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS10ZXh0LWlucHV0LS1mbHVpZF9fc2tlbGV0b25cIikgZ2V0IGZsdWlkU2tlbGV0b25DbGFzcygpIHtcblx0XHRyZXR1cm4gdGhpcy5mbHVpZCAmJiB0aGlzLnNrZWxldG9uO1xuXHR9XG5cdC8qKlxuXHQgKiBVc2VkIHRvIGJ1aWxkIHRoZSBpZCBvZiB0aGUgaW5wdXQgaXRlbSBhc3NvY2lhdGVkIHdpdGggdGhlIGBMYWJlbGAuXG5cdCAqL1xuXHRzdGF0aWMgbGFiZWxDb3VudGVyID0gMDtcblx0LyoqXG5cdCAqIFRoZSBpZCBvZiB0aGUgaW5wdXQgaXRlbSBhc3NvY2lhdGVkIHdpdGggdGhlIGBMYWJlbGAuIFRoaXMgdmFsdWUgaXMgYWxzbyB1c2VkIHRvIGFzc29jaWF0ZSB0aGUgYExhYmVsYCB3aXRoXG5cdCAqIGl0cyBpbnB1dCBjb3VudGVycGFydCB0aHJvdWdoIHRoZSAnZm9yJyBhdHRyaWJ1dGUuXG5cdCovXG5cdEBJbnB1dCgpIGxhYmVsSW5wdXRJRCA9IFwiaWJtLXRleHQtaW5wdXQtXCIgKyBUZXh0SW5wdXRMYWJlbENvbXBvbmVudC5sYWJlbENvdW50ZXIrKztcblxuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCBmb3IgYSBkaXNhYmxlZCBsYWJlbC5cblx0ICovXG5cdEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIGZvciBhIGxvYWRpbmcgbGFiZWwuXG5cdCAqL1xuXHRASW5wdXQoKSBza2VsZXRvbiA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBIZWxwZXIgaW5wdXQgcHJvcGVydHkgZm9yIGVhc2Ugb2YgbWlncmF0aW9uXG5cdCAqIFNpbmNlIHdlIGNhbm5vdCBwYXNzIG5nLWNvbnRlbnQgZG93biBlYXNpbHkgZnJvbSBsYWJlbCBjb21wb25lbnQsIHdlIHdpbGwgYWNjZXB0IHRoZSB0ZW1wbGF0ZXNcblx0ICovXG5cdEBJbnB1dCgpIGxhYmVsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cdEBJbnB1dCgpIHRleHRJbnB1dFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXHQvKipcblx0ICogT3B0aW9uYWwgaGVscGVyIHRleHQgdGhhdCBhcHBlYXJzIHVuZGVyIHRoZSBsYWJlbC5cblx0ICovXG5cdEBJbnB1dCgpIGhlbHBlclRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBpbnZhbGlkIHRleHQuXG5cdCAqL1xuXHRASW5wdXQoKSBpbnZhbGlkVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pjtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgZm9yIGFuIGludmFsaWQgbGFiZWwgY29tcG9uZW50LlxuXHQgKi9cblx0QElucHV0KCkgaW52YWxpZCA9IGZhbHNlO1xuXHQvKipcblx0ICAqIFNldCB0byBgdHJ1ZWAgdG8gc2hvdyBhIHdhcm5pbmcgKGNvbnRlbnRzIHNldCBieSB3YXJuaW5nVGV4dClcblx0ICAqL1xuXHRASW5wdXQoKSB3YXJuID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXRzIHRoZSB3YXJuaW5nIHRleHRcblx0ICovXG5cdEBJbnB1dCgpIHdhcm5UZXh0OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXHQvKipcblx0ICogU2V0IHRoZSBhcmlhbGFiZWwgZm9yIGxhYmVsXG5cdCAqL1xuXHRASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZztcblxuXHQvKipcblx0ICogRXhwZXJpbWVudGFsOiBlbmFibGUgZmx1aWQgc3RhdGVcblx0ICovXG5cdEBJbnB1dCgpIGZsdWlkID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqICoqRXhwZXJpbWVudGFsKio6IE9wdGlvbmFsIGRlY29yYXRvciAoZS5nLiBBSSBsYWJlbCkuXG5cdCAqL1xuXHRASW5wdXQoKSBkZWNvcmF0b3I6IFRlbXBsYXRlUmVmPGFueT47XG5cblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgdG8gaGlkZSB0aGUgbGFiZWwgdmlzdWFsbHksIGJ1dCBrZWVwIGFjY2Vzc2libGUgdG9cblx0ICogc2NyZWVuIHJlYWRlcnMuXG5cdCAqL1xuXHRASW5wdXQoKSBoaWRlTGFiZWwgPSBmYWxzZTtcblxuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCB0byByZW5kZXIgdGhlIGxhYmVsIGFuZCBmaWVsZCBzaWRlLWJ5LXNpZGUgaW5zdGVhZCBvZiBzdGFja2VkLlxuXHQgKi9cblx0QElucHV0KCkgaW5saW5lID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIFRoZSByZW5kZXIgc2l6ZSBmb3IgdGhlIGBUZXh0SW5wdXRgLiBVc2VkIHRvIGNvbXB1dGUgdGhlIElOTElORSBsYWJlbCBzaXplXG5cdCAqIHZhcmlhbnQgY2xhc3MgKGBjZHMtLWxhYmVsLS1pbmxpbmUtLXtzaXplfWApLlxuXHQgKi9cblx0QElucHV0KCkgc2l6ZTogXCJzbVwiIHwgXCJtZFwiIHwgXCJsZ1wiID0gXCJtZFwiO1xuXG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIChgbWF4Q291bnRgIG11c3QgYmUgc2V0KSB0byBkaXNwbGF5cyBhIGxpdmUgY2hhcmFjdGVyXG5cdCAqIGNvdW50ZXIgYWxvbmdzaWRlIHRoZSBsYWJlbC5cblx0ICovXG5cdEBJbnB1dCgpIGVuYWJsZUNvdW50ZXIgPSBmYWxzZTtcblxuXHQvKipcblx0ICogTWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyAob3Igd29yZHMpIGFsbG93ZWQuIFJlcXVpcmVkIGZvciB0aGVcblx0ICogY291bnRlciB0byBkaXNwbGF5LlxuXHQgKi9cblx0QElucHV0KCkgbWF4Q291bnQ6IG51bWJlcjtcblxuXHQvLyBUcmFja3MgY3VycmVudCBjaGFyYWN0ZXIgY291bnQgZm9yIHRoZSBjb3VudGVyIGRpc3BsYXkuXG5cdHRleHRDb3VudCA9IDA7XG5cblx0Ly8gQHRzLWlnbm9yZVxuXHRAVmlld0NoaWxkKFwid3JhcHBlclwiLCB7IHN0YXRpYzogZmFsc2UgfSkgd3JhcHBlcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cblx0Ly8gQHRzLWlnbm9yZVxuXHRAQ29udGVudENoaWxkKFRleHRJbnB1dCwgeyBzdGF0aWM6IGZhbHNlIH0pIHRleHRJbnB1dDogVGV4dElucHV0O1xuXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tZm9ybS1pdGVtXCIpIGxhYmVsQ2xhc3MgPSB0cnVlO1xuXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tdGV4dC1pbnB1dC13cmFwcGVyXCIpIHRleHRJbnB1dFdyYXBwZXIgPSB0cnVlO1xuXG5cdC8vIENhY2hlZCByZWZlcmVuY2UgdG8gdGhlIGlucHV0IGVsZW1lbnQsIHNldCBvbmNlIGluIG5nQWZ0ZXJWaWV3SW5pdC5cblx0cHJpdmF0ZSBfaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cblx0Ly8gUnhKUyBzdWJzY3JpcHRpb24gdXNlZCB3aGVuIE5nQ29udHJvbCBpcyBhdmFpbGFibGUgKHRlbXBsYXRlLWRyaXZlbiAmIHJlYWN0aXZlIGZvcm1zKS5cblx0cHJpdmF0ZSBfc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcblxuXHQvLyBGYWxsYmFjayBjYWNoZWQgRE9NIGxpc3RlbmVyIHNvIGl0IGNhbiBiZSByZW1vdmVkIHByZWNpc2VseSAoYXZvaWRzIGFub255bW91cy1mdW5jdGlvbiBsZWFrKS5cblx0cHJpdmF0ZSBfaW5wdXRMaXN0ZW5lcjogKChlOiBFdmVudCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBMYWJlbC5cblx0ICovXG5cdGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIGlkIG9uIHRoZSBpbnB1dCBpdGVtIGFzc29jaWF0ZWQgd2l0aCB0aGUgYExhYmVsYCBhbmQgYXR0YWNoZXMgdGhlXG5cdCAqIGNvdW50ZXIgbGlzdGVuZXIgd2hlbiBgZW5hYmxlQ291bnRlcmAgaXMgYWxyZWFkeSBgdHJ1ZWAgb24gZmlyc3QgcmVuZGVyLlxuXHQgKi9cblx0bmdBZnRlclZpZXdJbml0KCkge1xuXHRcdGlmICh0aGlzLndyYXBwZXIpIHtcblx0XHRcdC8vIFByaW9yaXRpemUgc2V0dGluZyBpZCB0byBgaW5wdXRgIG92ZXIgZGl2XG5cdFx0XHRjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLndyYXBwZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiaW5wdXRcIik7XG5cdFx0XHRpZiAoaW5wdXRFbGVtZW50KSB7XG5cdFx0XHRcdC8vIGF2b2lkIG92ZXJyaWRpbmcgaWRzIGFscmVhZHkgc2V0IGJ5IHRoZSB1c2VyLCByZXVzZSBpdCBpbnN0ZWFkXG5cdFx0XHRcdGlmIChpbnB1dEVsZW1lbnQuaWQpIHtcblx0XHRcdFx0XHR0aGlzLmxhYmVsSW5wdXRJRCA9IGlucHV0RWxlbWVudC5pZDtcblx0XHRcdFx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpbnB1dEVsZW1lbnQuc2V0QXR0cmlidXRlKFwiaWRcIiwgdGhpcy5sYWJlbElucHV0SUQpO1xuXG5cdFx0XHRcdHRoaXMuX2lucHV0RWxlbWVudCA9IGlucHV0RWxlbWVudDtcblxuXHRcdFx0XHRpZiAodGhpcy5lbmFibGVDb3VudGVyKSB7XG5cdFx0XHRcdFx0dGhpcy50ZXh0Q291bnQgPSBpbnB1dEVsZW1lbnQudmFsdWU/Lmxlbmd0aCB8fCAwO1xuXHRcdFx0XHRcdHRoaXMuX2F0dGFjaENvdW50ZXJMaXN0ZW5lcigpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBkaXZFbGVtZW50ID0gdGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcImRpdlwiKTtcblx0XHRcdGlmIChkaXZFbGVtZW50KSB7XG5cdFx0XHRcdGlmIChkaXZFbGVtZW50LmlkKSB7XG5cdFx0XHRcdFx0dGhpcy5sYWJlbElucHV0SUQgPSBkaXZFbGVtZW50LmlkO1xuXHRcdFx0XHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRpdkVsZW1lbnQuc2V0QXR0cmlidXRlKFwiaWRcIiwgdGhpcy5sYWJlbElucHV0SUQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBBdHRhY2gvcmVtb3ZlIGxpc3RlbmVyIGFuZCBzZWVkIGB0ZXh0Q291bnRgIGZyb20gdGhlIGlucHV0J3MgY3VycmVudCB2YWx1ZS5cblx0ICovXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcblx0XHRpZiAoY2hhbmdlcy5lbmFibGVDb3VudGVyICYmICFjaGFuZ2VzLmVuYWJsZUNvdW50ZXIuZmlyc3RDaGFuZ2UpIHtcblx0XHRcdGlmIChjaGFuZ2VzLmVuYWJsZUNvdW50ZXIuY3VycmVudFZhbHVlKSB7XG5cdFx0XHRcdGlmICh0aGlzLl9pbnB1dEVsZW1lbnQpIHtcblx0XHRcdFx0XHR0aGlzLnRleHRDb3VudCA9IHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZT8ubGVuZ3RoIHx8IDA7XG5cdFx0XHRcdFx0dGhpcy5fYXR0YWNoQ291bnRlckxpc3RlbmVyKCk7XG5cdFx0XHRcdFx0dGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuX2RldGFjaENvdW50ZXJMaXN0ZW5lcigpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcblx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCkge1xuXHRcdHRoaXMuX2RldGFjaENvdW50ZXJMaXN0ZW5lcigpO1xuXHR9XG5cblx0cHVibGljIGlzVGVtcGxhdGUodmFsdWUpIHtcblx0XHRyZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcblx0fVxuXG5cdC8qKlxuXHQgKiBBdHRhY2hlcyB0aGUgY291bnRlciBsaXN0ZW5lciwgbGlzdGVuIGZvciBlaXRoZXIgbmdDb250cm9sIG9yIG5hdGl2ZSBET00gaW5wdXRcblx0ICogZXZlbnQgbGlzdGVuZXJcblx0ICovXG5cdHByaXZhdGUgX2F0dGFjaENvdW50ZXJMaXN0ZW5lcigpOiB2b2lkIHtcblx0XHR0aGlzLl9kZXRhY2hDb3VudGVyTGlzdGVuZXIoKTtcblxuXHRcdGNvbnN0IGNvbnRyb2wgPSB0aGlzLnRleHRJbnB1dD8ubmdDb250cm9sO1xuXHRcdGlmIChjb250cm9sPy52YWx1ZUNoYW5nZXMpIHtcblx0XHRcdC8vIE5nQ29udHJvbCBsaXN0ZW5lclxuXHRcdFx0dGhpcy5fc3Vic2NyaXB0aW9uID0gY29udHJvbC52YWx1ZUNoYW5nZXNcblx0XHRcdFx0LnBpcGUoc3RhcnRXaXRoKGNvbnRyb2wudmFsdWUpKVxuXHRcdFx0XHQuc3Vic2NyaWJlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy50ZXh0Q291bnQgPSB2YWx1ZT8ubGVuZ3RoIHx8IDA7XG5cdFx0XHRcdFx0dGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcblx0XHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIEZhbGxiYWNrIERPTSBwYXRoXG5cdFx0XHRpZiAoIXRoaXMuX2lucHV0RWxlbWVudCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHR0aGlzLl9pbnB1dExpc3RlbmVyID0gKGU6IEV2ZW50KSA9PiB7XG5cdFx0XHRcdHRoaXMudGV4dENvdW50ID0gKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlPy5sZW5ndGggfHwgMDtcblx0XHRcdFx0dGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHR9O1xuXHRcdFx0dGhpcy5faW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJpbnB1dFwiLCB0aGlzLl9pbnB1dExpc3RlbmVyKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUmVtb3ZlcyB0aGUgc3Vic2NyaXB0aW9uIChOZ0NvbnRyb2wgcGF0aCkgb3IgcmVtb3ZlcyB0aGUgRE9NIGxpc3RlbmVyLlxuXHQgKiBTYWZlIHRvIGNhbGwgd2hlbiBuZWl0aGVyIGlzIGFjdGl2ZS5cblx0ICovXG5cdHByaXZhdGUgX2RldGFjaENvdW50ZXJMaXN0ZW5lcigpOiB2b2lkIHtcblx0XHR0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG5cdFx0dGhpcy5fc3Vic2NyaXB0aW9uID0gbnVsbDtcblxuXHRcdGlmICh0aGlzLl9pbnB1dExpc3RlbmVyICYmIHRoaXMuX2lucHV0RWxlbWVudCkge1xuXHRcdFx0dGhpcy5faW5wdXRFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJpbnB1dFwiLCB0aGlzLl9pbnB1dExpc3RlbmVyKTtcblx0XHRcdHRoaXMuX2lucHV0TGlzdGVuZXIgPSBudWxsO1xuXHRcdH1cblx0fVxufVxuIl19