@simpleangularcontrols/sac-common 13.0.0-rc.19 → 13.0.0-rc.20
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.
- package/common/basedatetimecontrol.d.ts +7 -3
- package/common/basedatetimecontrol.d.ts.map +1 -1
- package/common/basemodelcontrol.d.ts +5 -1
- package/common/basemodelcontrol.d.ts.map +1 -1
- package/common/baseuploadcontrol.d.ts +4 -0
- package/common/baseuploadcontrol.d.ts.map +1 -1
- package/controls/buttons/button.d.ts +26 -22
- package/controls/buttons/button.d.ts.map +1 -1
- package/controls/checkbox/checkbox.d.ts +1 -1
- package/controls/checkbox/checkbox.d.ts.map +1 -1
- package/controls/confirm/confirm.button.d.ts.map +1 -1
- package/controls/confirm/confirm.d.ts +20 -20
- package/controls/confirm/confirm.d.ts.map +1 -1
- package/controls/confirm/confirm.service.d.ts +10 -10
- package/controls/confirm/confirm.service.d.ts.map +1 -1
- package/controls/contextmenu/contextmenu.d.ts +9 -1
- package/controls/contextmenu/contextmenu.d.ts.map +1 -1
- package/controls/contextmenu/contextmenuanchor.d.ts.map +1 -1
- package/controls/contextmenu/contextmenucontainer.d.ts.map +1 -1
- package/controls/datetime/dateselector.d.ts +10 -2
- package/controls/datetime/dateselector.d.ts.map +1 -1
- package/controls/dialog/dialog.d.ts +6 -2
- package/controls/dialog/dialog.d.ts.map +1 -1
- package/controls/form/form.d.ts +4 -4
- package/controls/form/form.d.ts.map +1 -1
- package/controls/grid/grid.d.ts +23 -19
- package/controls/grid/grid.d.ts.map +1 -1
- package/controls/grid/gridbutton.d.ts +24 -5
- package/controls/grid/gridbutton.d.ts.map +1 -1
- package/controls/grid/gridcolumn.d.ts +5 -5
- package/controls/grid/gridcolumn.d.ts.map +1 -1
- package/controls/grid/gridcolumnaction.d.ts +1 -1
- package/controls/grid/gridcolumnaction.d.ts.map +1 -1
- package/controls/grid/gridcolumnbase.d.ts +18 -6
- package/controls/grid/gridcolumnbase.d.ts.map +1 -1
- package/controls/grid/gridimage.d.ts.map +1 -1
- package/controls/grid/model.d.ts +17 -17
- package/controls/grid/model.d.ts.map +1 -1
- package/controls/grid/paging.d.ts +34 -30
- package/controls/grid/paging.d.ts.map +1 -1
- package/controls/input/inputdecimal.d.ts +1 -1
- package/controls/input/inputdecimal.d.ts.map +1 -1
- package/controls/input/inputemail.d.ts +1 -1
- package/controls/input/inputemail.d.ts.map +1 -1
- package/controls/input/inputinteger.d.ts +1 -1
- package/controls/input/inputinteger.d.ts.map +1 -1
- package/controls/input/inputsearch.d.ts +5 -5
- package/controls/input/inputsearch.d.ts.map +1 -1
- package/controls/layout/formlayout.d.ts.map +1 -1
- package/controls/list/buildvaluestring.d.ts.map +1 -1
- package/controls/list/dropdown.d.ts +3 -3
- package/controls/list/dropdown.d.ts.map +1 -1
- package/controls/list/dropdownoptions.d.ts +1 -1
- package/controls/list/dropdownoptions.d.ts.map +1 -1
- package/controls/list/list.module.d.ts.map +1 -1
- package/controls/list/listbox.d.ts +2 -2
- package/controls/list/listbox.d.ts.map +1 -1
- package/controls/multilanguage/multilanguageinput.d.ts +2 -2
- package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
- package/controls/static/staticlabel.d.ts +1 -1
- package/controls/static/staticlabel.d.ts.map +1 -1
- package/controls/tabs/tab.d.ts +20 -16
- package/controls/tabs/tab.d.ts.map +1 -1
- package/controls/tabs/tabitem.d.ts +4 -4
- package/controls/tabs/tabitem.d.ts.map +1 -1
- package/controls/tinymce/tinymce.d.ts +26 -22
- package/controls/tinymce/tinymce.d.ts.map +1 -1
- package/controls/tinymce/tinymcedialogsettings.d.ts +9 -9
- package/controls/tinymce/tinymcedialogsettings.d.ts.map +1 -1
- package/controls/tinymce/tinymcedialogsettingsmeta.d.ts.map +1 -1
- package/controls/tinymce/tinymcedialogsettingsmeta.ngfactory.d.ts +0 -3
- package/controls/tinymce/tinymcedialogsettingsmeta.ngfactory.d.ts.map +1 -1
- package/controls/tinymce/tinymceinstance.d.ts.map +1 -1
- package/controls/tooltip/tooltip.d.ts +9 -1
- package/controls/tooltip/tooltip.d.ts.map +1 -1
- package/controls/upload/dropzonemultiple.d.ts +4 -0
- package/controls/upload/dropzonemultiple.d.ts.map +1 -1
- package/controls/upload/dropzonesingle.d.ts +4 -0
- package/controls/upload/dropzonesingle.d.ts.map +1 -1
- package/controls/upload/uploadmultiple.d.ts +4 -0
- package/controls/upload/uploadmultiple.d.ts.map +1 -1
- package/controls/upload/uploadsingle.d.ts +4 -0
- package/controls/upload/uploadsingle.d.ts.map +1 -1
- package/controls/validation/validationsummary.d.ts +9 -5
- package/controls/validation/validationsummary.d.ts.map +1 -1
- package/controls/wizard/wizard.d.ts +31 -31
- package/controls/wizard/wizard.d.ts.map +1 -1
- package/controls/wizard/wizarditem.d.ts +5 -5
- package/controls/wizard/wizarditem.d.ts.map +1 -1
- package/esm2020/common/basedatetimecontrol.mjs +23 -23
- package/esm2020/common/basemodelcontrol.mjs +62 -60
- package/esm2020/common/baseuploadcontrol.mjs +52 -50
- package/esm2020/controls/buttons/button.mjs +23 -21
- package/esm2020/controls/checkbox/checkbox.mjs +4 -4
- package/esm2020/controls/confirm/confirm.button.mjs +3 -3
- package/esm2020/controls/confirm/confirm.mjs +21 -23
- package/esm2020/controls/confirm/confirm.service.mjs +4 -4
- package/esm2020/controls/contextmenu/contextmenu.mjs +20 -16
- package/esm2020/controls/contextmenu/contextmenuanchor.mjs +3 -3
- package/esm2020/controls/contextmenu/contextmenucontainer.mjs +3 -3
- package/esm2020/controls/datetime/dateselector.mjs +57 -49
- package/esm2020/controls/dialog/dialog.mjs +30 -19
- package/esm2020/controls/form/form.mjs +4 -5
- package/esm2020/controls/grid/grid.mjs +23 -19
- package/esm2020/controls/grid/gridbutton.mjs +20 -11
- package/esm2020/controls/grid/gridcolumn.mjs +7 -7
- package/esm2020/controls/grid/gridcolumnaction.mjs +4 -4
- package/esm2020/controls/grid/gridcolumnbase.mjs +17 -15
- package/esm2020/controls/grid/gridimage.mjs +3 -3
- package/esm2020/controls/grid/model.mjs +22 -22
- package/esm2020/controls/grid/paging.mjs +44 -40
- package/esm2020/controls/input/inputdecimal.mjs +4 -4
- package/esm2020/controls/input/inputemail.mjs +4 -4
- package/esm2020/controls/input/inputinteger.mjs +4 -4
- package/esm2020/controls/input/inputsearch.mjs +7 -7
- package/esm2020/controls/layout/formlayout.mjs +8 -5
- package/esm2020/controls/list/buildvaluestring.mjs +6 -4
- package/esm2020/controls/list/dropdown.mjs +18 -9
- package/esm2020/controls/list/dropdownoptions.mjs +15 -8
- package/esm2020/controls/list/list.module.mjs +3 -3
- package/esm2020/controls/list/listbox.mjs +5 -5
- package/esm2020/controls/multilanguage/multilanguageinput.mjs +4 -4
- package/esm2020/controls/static/staticlabel.mjs +9 -6
- package/esm2020/controls/tabs/tab.mjs +23 -18
- package/esm2020/controls/tabs/tabitem.mjs +5 -4
- package/esm2020/controls/tinymce/tinymce.mjs +35 -33
- package/esm2020/controls/tinymce/tinymcedialogsettings.mjs +6 -4
- package/esm2020/controls/tinymce/tinymcedialogsettingsmeta.mjs +3 -5
- package/esm2020/controls/tinymce/tinymcedialogsettingsmeta.ngfactory.mjs +3 -5
- package/esm2020/controls/tinymce/tinymceinstance.mjs +3 -3
- package/esm2020/controls/tooltip/tooltip.mjs +31 -27
- package/esm2020/controls/upload/dropzonemultiple.mjs +7 -3
- package/esm2020/controls/upload/dropzonesingle.mjs +7 -3
- package/esm2020/controls/upload/uploadmultiple.mjs +7 -3
- package/esm2020/controls/upload/uploadsingle.mjs +7 -3
- package/esm2020/controls/validation/validationsummary.mjs +16 -14
- package/esm2020/controls/wizard/wizard.mjs +27 -23
- package/esm2020/controls/wizard/wizarditem.mjs +5 -5
- package/esm2020/interfaces/ISacConfigurationService.mjs +3 -3
- package/esm2020/interfaces/ISacIconService.mjs +3 -3
- package/esm2020/interfaces/ISacLabelSizes.mjs +3 -3
- package/esm2020/public_api.mjs +6 -5
- package/esm2020/services/sac-configuration.service.mjs +26 -20
- package/esm2020/services/sac-icon.service.mjs +27 -17
- package/esm2020/utilities/testingattribute.pipe.mjs +12 -0
- package/esm2020/utilities/testingattribute.pipe.ngfactory.mjs +3 -0
- package/esm2020/utilities/testingattribute.pipe.ngsummary.mjs +3 -0
- package/esm2020/utilities/utilities.module.mjs +3 -0
- package/esm2020/utilities/utilities.module.ngfactory.mjs +3 -0
- package/esm2020/utilities/utilities.module.ngsummary.mjs +3 -0
- package/fesm2015/simpleangularcontrols-sac-common.mjs +1348 -1218
- package/fesm2015/simpleangularcontrols-sac-common.mjs.map +1 -1
- package/fesm2020/simpleangularcontrols-sac-common.mjs +1348 -1218
- package/fesm2020/simpleangularcontrols-sac-common.mjs.map +1 -1
- package/interfaces/ISacConfigurationService.d.ts +16 -12
- package/interfaces/ISacConfigurationService.d.ts.map +1 -1
- package/interfaces/ISacIconService.d.ts +20 -0
- package/interfaces/ISacIconService.d.ts.map +1 -1
- package/interfaces/ISacLabelSizes.d.ts +12 -12
- package/interfaces/ISacLabelSizes.d.ts.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +2 -0
- package/public_api.d.ts.map +1 -1
- package/services/sac-configuration.service.d.ts +13 -5
- package/services/sac-configuration.service.d.ts.map +1 -1
- package/services/sac-icon.service.d.ts +40 -0
- package/services/sac-icon.service.d.ts.map +1 -1
- package/simpleangularcontrols-sac-common-13.0.0-rc.20.tgz +0 -0
- package/utilities/testingattribute.pipe.d.ts +16 -0
- package/utilities/testingattribute.pipe.d.ts.map +1 -0
- package/utilities/testingattribute.pipe.ngfactory.d.ts +4 -0
- package/utilities/testingattribute.pipe.ngfactory.d.ts.map +1 -0
- package/utilities/testingattribute.pipe.ngsummary.d.ts +2 -0
- package/utilities/testingattribute.pipe.ngsummary.d.ts.map +1 -0
- package/utilities/utilities.module.d.ts +8 -0
- package/utilities/utilities.module.d.ts.map +1 -0
- package/utilities/utilities.module.ngfactory.d.ts +4 -0
- package/utilities/utilities.module.ngfactory.d.ts.map +1 -0
- package/utilities/utilities.module.ngsummary.d.ts +2 -0
- package/utilities/utilities.module.ngsummary.d.ts.map +1 -0
- package/simpleangularcontrols-sac-common-13.0.0-rc.19.tgz +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
function cov_10tnjmv4ka(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2020/common/basedatetimecontrol.mjs";var hash="541b498e0d71536e2c31a67039cafe8d7e993ad5";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2020/common/basedatetimecontrol.mjs",statementMap:{"0":{start:{line:23,column:8},end:{line:23,column:36}},"1":{start:{line:24,column:8},end:{line:24,column:37}},"2":{start:{line:25,column:8},end:{line:25,column:27}},"3":{start:{line:30,column:8},end:{line:30,column:45}},"4":{start:{line:34,column:8},end:{line:34,column:33}},"5":{start:{line:38,column:8},end:{line:38,column:47}},"6":{start:{line:42,column:8},end:{line:42,column:35}},"7":{start:{line:46,column:8},end:{line:46,column:32}},"8":{start:{line:50,column:8},end:{line:50,column:41}},"9":{start:{line:54,column:8},end:{line:54,column:46}},"10":{start:{line:58,column:8},end:{line:58,column:32}},"11":{start:{line:62,column:8},end:{line:62,column:33}},"12":{start:{line:66,column:8},end:{line:66,column:32}},"13":{start:{line:70,column:8},end:{line:70,column:30}},"14":{start:{line:74,column:8},end:{line:74,column:29}},"15":{start:{line:80,column:8},end:{line:80,column:43}},"16":{start:{line:84,column:8},end:{line:84,column:103}},"17":{start:{line:88,column:8},end:{line:88,column:117}},"18":{start:{line:92,column:8},end:{line:92,column:91}},"19":{start:{line:96,column:8},end:{line:96,column:105}},"20":{start:{line:102,column:8},end:{line:111,column:10}},"21":{start:{line:104,column:12},end:{line:106,column:13}},"22":{start:{line:105,column:16},end:{line:105,column:23}},"23":{start:{line:107,column:12},end:{line:110,column:15}},"24":{start:{line:108,column:16},end:{line:108,column:39}},"25":{start:{line:109,column:16},end:{line:109,column:38}},"26":{start:{line:119,column:8},end:{line:121,column:9}},"27":{start:{line:120,column:12},end:{line:120,column:60}},"28":{start:{line:122,column:8},end:{line:122,column:38}},"29":{start:{line:123,column:8},end:{line:123,column:31}},"30":{start:{line:124,column:8},end:{line:124,column:35}},"31":{start:{line:127,column:8},end:{line:127,column:36}},"32":{start:{line:133,column:8},end:{line:139,column:9}},"33":{start:{line:134,column:12},end:{line:134,column:39}},"34":{start:{line:137,column:25},end:{line:137,column:52}},"35":{start:{line:138,column:12},end:{line:138,column:71}},"36":{start:{line:145,column:8},end:{line:145,column:32}},"37":{start:{line:146,column:19},end:{line:146,column:73}},"38":{start:{line:147,column:8},end:{line:147,column:58}},"39":{start:{line:148,column:8},end:{line:153,column:9}},"40":{start:{line:149,column:12},end:{line:149,column:39}},"41":{start:{line:152,column:12},end:{line:152,column:30}},"42":{start:{line:159,column:8},end:{line:159,column:159}},"43":{start:{line:165,column:21},end:{line:165,column:40}},"44":{start:{line:166,column:21},end:{line:166,column:42}},"45":{start:{line:167,column:22},end:{line:167,column:40}},"46":{start:{line:168,column:20},end:{line:168,column:37}},"47":{start:{line:169,column:22},end:{line:169,column:40}},"48":{start:{line:170,column:24},end:{line:170,column:44}},"49":{start:{line:171,column:24},end:{line:171,column:44}},"50":{start:{line:172,column:8},end:{line:172,column:80}},"51":{start:{line:178,column:8},end:{line:178,column:69}},"52":{start:{line:184,column:8},end:{line:184,column:68}},"53":{start:{line:191,column:8},end:{line:193,column:9}},"54":{start:{line:192,column:12},end:{line:192,column:74}},"55":{start:{line:195,column:8},end:{line:195,column:73}},"56":{start:{line:196,column:8},end:{line:196,column:73}},"57":{start:{line:202,column:8},end:{line:202,column:25}},"58":{start:{line:203,column:8},end:{line:203,column:33}},"59":{start:{line:205,column:8},end:{line:205,column:70}},"60":{start:{line:206,column:8},end:{line:206,column:70}},"61":{start:{line:212,column:8},end:{line:212,column:29}},"62":{start:{line:218,column:20},end:{line:218,column:24}},"63":{start:{line:219,column:8},end:{line:224,column:9}},"64":{start:{line:220,column:12},end:{line:220,column:140}},"65":{start:{line:221,column:12},end:{line:223,column:13}},"66":{start:{line:222,column:16},end:{line:222,column:29}},"67":{start:{line:225,column:8},end:{line:225,column:125}},"68":{start:{line:226,column:8},end:{line:228,column:9}},"69":{start:{line:227,column:12},end:{line:227,column:114}},"70":{start:{line:229,column:8},end:{line:229,column:21}},"71":{start:{line:235,column:8},end:{line:243,column:9}},"72":{start:{line:237,column:12},end:{line:237,column:37}},"73":{start:{line:239,column:12},end:{line:239,column:31}},"74":{start:{line:242,column:12},end:{line:242,column:55}},"75":{start:{line:244,column:8},end:{line:244,column:38}},"76":{start:{line:249,column:8},end:{line:249,column:82}},"77":{start:{line:252,column:8},end:{line:252,column:81}},"78":{start:{line:258,column:22},end:{line:258,column:179}},"79":{start:{line:260,column:8},end:{line:265,column:9}},"80":{start:{line:261,column:12},end:{line:261,column:34}},"81":{start:{line:264,column:12},end:{line:264,column:38}},"82":{start:{line:266,column:8},end:{line:285,column:9}},"83":{start:{line:269,column:16},end:{line:269,column:86}},"84":{start:{line:270,column:16},end:{line:270,column:22}},"85":{start:{line:273,column:16},end:{line:276,column:89}},"86":{start:{line:278,column:16},end:{line:280,column:17}},"87":{start:{line:279,column:20},end:{line:279,column:56}},"88":{start:{line:281,column:16},end:{line:281,column:22}},"89":{start:{line:283,column:16},end:{line:283,column:41}},"90":{start:{line:284,column:16},end:{line:284,column:22}},"91":{start:{line:286,column:8},end:{line:286,column:21}},"92":{start:{line:292,column:22},end:{line:292,column:178}},"93":{start:{line:293,column:8},end:{line:293,column:33}},"94":{start:{line:294,column:8},end:{line:302,column:9}},"95":{start:{line:297,column:16},end:{line:297,column:68}},"96":{start:{line:298,column:16},end:{line:298,column:22}},"97":{start:{line:300,column:16},end:{line:300,column:40}},"98":{start:{line:301,column:16},end:{line:301,column:22}},"99":{start:{line:303,column:8},end:{line:303,column:21}},"100":{start:{line:307,column:8},end:{line:309,column:9}},"101":{start:{line:308,column:12},end:{line:308,column:81}},"102":{start:{line:312,column:0},end:{line:312,column:305}},"103":{start:{line:313,column:0},end:{line:313,column:858}},"104":{start:{line:314,column:0},end:{line:341,column:20}},"105":{start:{line:316,column:42},end:{line:316,column:164}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:22,column:4},end:{line:22,column:5}},loc:{start:{line:22,column:57},end:{line:112,column:5}},line:22},"1":{name:"(anonymous_1)",decl:{start:{line:102,column:31},end:{line:102,column:32}},loc:{start:{line:102,column:37},end:{line:111,column:9}},line:102},"2":{name:"(anonymous_2)",decl:{start:{line:107,column:23},end:{line:107,column:24}},loc:{start:{line:107,column:29},end:{line:110,column:13}},line:107},"3":{name:"(anonymous_3)",decl:{start:{line:118,column:4},end:{line:118,column:5}},loc:{start:{line:118,column:23},end:{line:125,column:5}},line:118},"4":{name:"(anonymous_4)",decl:{start:{line:126,column:4},end:{line:126,column:5}},loc:{start:{line:126,column:18},end:{line:128,column:5}},line:126},"5":{name:"(anonymous_5)",decl:{start:{line:132,column:4},end:{line:132,column:5}},loc:{start:{line:132,column:22},end:{line:140,column:5}},line:132},"6":{name:"(anonymous_6)",decl:{start:{line:144,column:4},end:{line:144,column:5}},loc:{start:{line:144,column:23},end:{line:154,column:5}},line:144},"7":{name:"(anonymous_7)",decl:{start:{line:158,column:4},end:{line:158,column:5}},loc:{start:{line:158,column:24},end:{line:160,column:5}},line:158},"8":{name:"(anonymous_8)",decl:{start:{line:164,column:4},end:{line:164,column:5}},loc:{start:{line:164,column:23},end:{line:173,column:5}},line:164},"9":{name:"(anonymous_9)",decl:{start:{line:177,column:4},end:{line:177,column:5}},loc:{start:{line:177,column:22},end:{line:179,column:5}},line:177},"10":{name:"(anonymous_10)",decl:{start:{line:183,column:4},end:{line:183,column:5}},loc:{start:{line:183,column:21},end:{line:185,column:5}},line:183},"11":{name:"(anonymous_11)",decl:{start:{line:186,column:4},end:{line:186,column:5}},loc:{start:{line:186,column:16},end:{line:188,column:5}},line:186},"12":{name:"(anonymous_12)",decl:{start:{line:189,column:4},end:{line:189,column:5}},loc:{start:{line:189,column:18},end:{line:197,column:5}},line:189},"13":{name:"(anonymous_13)",decl:{start:{line:201,column:4},end:{line:201,column:5}},loc:{start:{line:201,column:15},end:{line:207,column:5}},line:201},"14":{name:"(anonymous_14)",decl:{start:{line:211,column:4},end:{line:211,column:5}},loc:{start:{line:211,column:22},end:{line:213,column:5}},line:211},"15":{name:"(anonymous_15)",decl:{start:{line:217,column:4},end:{line:217,column:5}},loc:{start:{line:217,column:20},end:{line:230,column:5}},line:217},"16":{name:"(anonymous_16)",decl:{start:{line:234,column:4},end:{line:234,column:5}},loc:{start:{line:234,column:22},end:{line:245,column:5}},line:234},"17":{name:"(anonymous_17)",decl:{start:{line:248,column:4},end:{line:248,column:5}},loc:{start:{line:248,column:21},end:{line:250,column:5}},line:248},"18":{name:"(anonymous_18)",decl:{start:{line:251,column:4},end:{line:251,column:5}},loc:{start:{line:251,column:20},end:{line:253,column:5}},line:251},"19":{name:"(anonymous_19)",decl:{start:{line:257,column:4},end:{line:257,column:5}},loc:{start:{line:257,column:22},end:{line:287,column:5}},line:257},"20":{name:"(anonymous_20)",decl:{start:{line:291,column:4},end:{line:291,column:5}},loc:{start:{line:291,column:21},end:{line:304,column:5}},line:291},"21":{name:"(anonymous_21)",decl:{start:{line:305,column:4},end:{line:305,column:5}},loc:{start:{line:305,column:24},end:{line:310,column:5}},line:305},"22":{name:"(anonymous_22)",decl:{start:{line:316,column:28},end:{line:316,column:29}},loc:{start:{line:316,column:40},end:{line:316,column:166}},line:316}},branchMap:{"0":{loc:{start:{line:104,column:12},end:{line:106,column:13}},type:"if",locations:[{start:{line:104,column:12},end:{line:106,column:13}},{start:{line:104,column:12},end:{line:106,column:13}}],line:104},"1":{loc:{start:{line:119,column:8},end:{line:121,column:9}},type:"if",locations:[{start:{line:119,column:8},end:{line:121,column:9}},{start:{line:119,column:8},end:{line:121,column:9}}],line:119},"2":{loc:{start:{line:133,column:8},end:{line:139,column:9}},type:"if",locations:[{start:{line:133,column:8},end:{line:139,column:9}},{start:{line:133,column:8},end:{line:139,column:9}}],line:133},"3":{loc:{start:{line:148,column:8},end:{line:153,column:9}},type:"if",locations:[{start:{line:148,column:8},end:{line:153,column:9}},{start:{line:148,column:8},end:{line:153,column:9}}],line:148},"4":{loc:{start:{line:191,column:8},end:{line:193,column:9}},type:"if",locations:[{start:{line:191,column:8},end:{line:193,column:9}},{start:{line:191,column:8},end:{line:193,column:9}}],line:191},"5":{loc:{start:{line:191,column:12},end:{line:191,column:69}},type:"binary-expr",locations:[{start:{line:191,column:12},end:{line:191,column:30}},{start:{line:191,column:34},end:{line:191,column:69}}],line:191},"6":{loc:{start:{line:219,column:8},end:{line:224,column:9}},type:"if",locations:[{start:{line:219,column:8},end:{line:224,column:9}},{start:{line:219,column:8},end:{line:224,column:9}}],line:219},"7":{loc:{start:{line:219,column:12},end:{line:219,column:75}},type:"binary-expr",locations:[{start:{line:219,column:12},end:{line:219,column:37}},{start:{line:219,column:41},end:{line:219,column:75}}],line:219},"8":{loc:{start:{line:221,column:12},end:{line:223,column:13}},type:"if",locations:[{start:{line:221,column:12},end:{line:223,column:13}},{start:{line:221,column:12},end:{line:223,column:13}}],line:221},"9":{loc:{start:{line:226,column:8},end:{line:228,column:9}},type:"if",locations:[{start:{line:226,column:8},end:{line:228,column:9}},{start:{line:226,column:8},end:{line:228,column:9}}],line:226},"10":{loc:{start:{line:235,column:8},end:{line:243,column:9}},type:"if",locations:[{start:{line:235,column:8},end:{line:243,column:9}},{start:{line:235,column:8},end:{line:243,column:9}}],line:235},"11":{loc:{start:{line:235,column:12},end:{line:235,column:65}},type:"binary-expr",locations:[{start:{line:235,column:12},end:{line:235,column:24}},{start:{line:235,column:28},end:{line:235,column:42}},{start:{line:235,column:46},end:{line:235,column:65}}],line:235},"12":{loc:{start:{line:249,column:15},end:{line:249,column:81}},type:"cond-expr",locations:[{start:{line:249,column:34},end:{line:249,column:77}},{start:{line:249,column:80},end:{line:249,column:81}}],line:249},"13":{loc:{start:{line:252,column:15},end:{line:252,column:80}},type:"cond-expr",locations:[{start:{line:252,column:34},end:{line:252,column:76}},{start:{line:252,column:79},end:{line:252,column:80}}],line:252},"14":{loc:{start:{line:260,column:8},end:{line:265,column:9}},type:"if",locations:[{start:{line:260,column:8},end:{line:265,column:9}},{start:{line:260,column:8},end:{line:265,column:9}}],line:260},"15":{loc:{start:{line:266,column:8},end:{line:285,column:9}},type:"switch",locations:[{start:{line:267,column:12},end:{line:267,column:37}},{start:{line:268,column:12},end:{line:270,column:22}},{start:{line:271,column:12},end:{line:271,column:40}},{start:{line:272,column:12},end:{line:281,column:22}},{start:{line:282,column:12},end:{line:284,column:22}}],line:266},"16":{loc:{start:{line:278,column:16},end:{line:280,column:17}},type:"if",locations:[{start:{line:278,column:16},end:{line:280,column:17}},{start:{line:278,column:16},end:{line:280,column:17}}],line:278},"17":{loc:{start:{line:294,column:8},end:{line:302,column:9}},type:"switch",locations:[{start:{line:295,column:12},end:{line:295,column:38}},{start:{line:296,column:12},end:{line:298,column:22}},{start:{line:299,column:12},end:{line:301,column:22}}],line:294},"18":{loc:{start:{line:307,column:8},end:{line:309,column:9}},type:"if",locations:[{start:{line:307,column:8},end:{line:309,column:9}},{start:{line:307,column:8},end:{line:309,column:9}}],line:307}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0,0,0,0],"16":[0,0],"17":[0,0,0],"18":[0,0]},inputSourceMap:{version:3,file:"basedatetimecontrol.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/common/basedatetimecontrol.ts"],names:[],mappings:"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",sourcesContent:["import { SacFormLayoutCommon } from '../controls/layout/formlayout';\nimport { IDateTimeControl } from '../interfaces/idatetimecontrol';\nimport { TooltipPosition } from '../utilities/enums';\nimport { PopUpHelper } from '../utilities/popuphelper';\nimport { Validation } from '../validation';\nimport { CreateValidationError } from '../validation/validationerrorcreator';\nimport { SacBaseModelControl } from './basemodelcontrol';\nimport {\n ChangeDetectorRef,\n Directive,\n DoCheck,\n ElementRef,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\nimport * as moment_ from 'moment';\n\n/**\n * Base Klasse f\xFCr Date/Time Controls\n */\n@Directive()\nexport abstract class SacBaseDateTimeControl extends SacBaseModelControl<Date> implements OnInit, OnDestroy, DoCheck {\n // #region Properties\n\n /**\n * Helper class to display tooltip on correct position\n */\n private readonly popupHelper: PopUpHelper = new PopUpHelper();\n\n /**\n * das property enthielt das Value als string. Default ist ''\n */\n protected _valueAsString = '';\n\n /**\n * Containers for the datetime picker\n */\n protected pickercontainer: ElementRef<HTMLElement>;\n\n /**\n * Property for enum in Angular HTML template\n */\n public TooltipPosition = TooltipPosition;\n\n /**\n * Definiert ob der Date Selector angezeigt wird\n */\n public _showselector: boolean = false;\n\n /**\n * Definiert das Control als Required\n */\n @Input() public isrequired: boolean = false;\n\n /**\n * Moment JS Instance\n */\n public moment = moment_['default'];\n\n /**\n * Arrow Item of Picker Element. Required to set the position of arrow correctly\n */\n public pickerPosition = TooltipPosition;\n @ViewChild('pickerarrow', { static: false })\n public pickerarrow: ElementRef<HTMLElement> | null;\n\n /**\n * Name of the container for content (e.g. icon) on which the tooltip is displayed.\n */\n @ViewChild('pickerbutton', { static: true })\n public pickerbutton: ElementRef<HTMLElement>;\n\n /**\n * TextBox Placeholder\n */\n @Input() public placeholder: string = null;\n\n /**\n * Position of the picker arrow at the left\n */\n public posArrowLeft: number | null = null;\n\n /**\n * Position of the picker arrow at the top\n */\n public posArrowTop: number | null = null;\n\n /**\n * Position of the picker at the left\n */\n public posPopupLeft: number = 0;\n\n /**\n * Position of the picker at the top\n */\n public posPopupTop: number = 0;\n\n /**\n * Position of the datetime picker. Values: left|top|right|bottom|auto\n *\n * Value 'auto' can be combined with another value.\n */\n @Input()\n public position: string = 'bottomend|topend';\n\n /**\n * Resource Key f\xFCr Validation Message DateTimeFormat bei Control\n */\n @Input() public validationmessagedatetimeformat: string = this.validationKeyService.ValidationErrorDatetimeFormat;\n\n /**\n * Resource Key f\xFCr Validation Message DateTimeFormat in Validation Summary\n */\n @Input() public validationmessagedatetimeformatsummary: string =\n this.validationKeyService.ValidationErrorSummaryDatetimeFormat;\n\n /**\n * Resource Key f\xFCr Validation Message Required bei Control\n */\n @Input() public validationmessagerequired: string = this.validationKeyService.ValidationErrorRequired;\n\n /**\n * Resource Key f\xFCr Validation Message Required in Validation Summary\n */\n @Input() public validationmessagerequiredsummary: string = this.validationKeyService.ValidationErrorSummaryRequired;\n\n // #endregion Properties\n\n // #region Constructors\n\n /**\n * Constructor\n * @param formlayout SacFormLayoutCommon to define scoped layout settings\n * @param injector Injector for injecting services\n * @param elementRef reference to html element\n */\n constructor(\n formlayout: SacFormLayoutCommon,\n injector: Injector,\n protected elementRef: ElementRef,\n private readonly cdRef: ChangeDetectorRef\n ) {\n super(formlayout, injector);\n }\n\n // #endregion Constructors\n\n // #region Public Getters And Setters\n\n /**\n * Setter for the name of the container for the tooltip. Is required as the tooltip can be hidden via ngIf.\n */\n @ViewChild('picker', { static: false })\n public set picker(picker: ElementRef) {\n if (picker !== undefined) {\n document.body.appendChild(picker.nativeElement);\n }\n\n this.pickercontainer = picker;\n this.onContentChange();\n this.cdRef.detectChanges();\n }\n\n public get tooltop(): ElementRef {\n return this.pickercontainer;\n }\n\n /**\n * getter f\xFCr valuestring\n */\n public get valuestring(): string {\n if (this.value === null) {\n return this._valueAsString;\n } else {\n const date = this.moment.utc(this.value);\n return date.local().format(this.GetDateTimeFormatString());\n }\n }\n\n /**\n * Das Input bekommt das value von typ string\n */\n @Input()\n public set valuestring(v: string) {\n this._valueAsString = v;\n let date: moment_.Moment = this.moment(v, [this.GetDateTimeFormatString()], true);\n\n date = this.ModifyParsedDateTimeValue(date).utc();\n\n if (date.isValid()) {\n this.value = date.toDate();\n } else {\n this.value = null;\n }\n }\n\n // #endregion Public Getters And Setters\n\n // #region Public Methods\n\n /**\n * Die methode returns dateTime in string\n */\n public abstract GetDateTimeFormatString(): string;\n\n /**\n * Returns the position of the tooltip\n */\n public GetPickerPosition(): TooltipPosition {\n return this.popupHelper.getDisplayPosition(\n this.pickerbutton,\n this.pickercontainer,\n this.getArrowWidth(),\n this.getArrowHeight(),\n this.position,\n false\n );\n }\n\n /**\n * Die methode modifiziert das eingegebene Value von typ Moment\n */\n public abstract ModifyParsedDateTimeValue(v: moment_.Moment): moment_.Moment;\n\n /**\n * JSON Date String in ein UTC DateTime Object konvertieren, welches vom Control verwendete werden kann\n */\n public getDate(timestamp): moment.Moment {\n const date = new Date(timestamp);\n const year = date.getUTCFullYear();\n const month = date.getUTCMonth();\n const day = date.getUTCDate();\n const hours = date.getUTCHours();\n const minutes = date.getUTCMinutes();\n const seconds = date.getUTCSeconds();\n\n return this.moment(Date.UTC(year, month, day, hours, minutes, seconds));\n }\n\n /**\n * Calculates the height of the tooltip\n */\n public getPickerHeight(): number {\n return this.popupHelper.getPopupHeight(this.pickercontainer);\n }\n\n /**\n * Calculates the width of the picker\n */\n public getPickerWidth(): number {\n return this.popupHelper.getPopupWidth(this.pickercontainer);\n }\n\n public ngDoCheck(): void {\n // this.onContentChange();\n }\n\n public ngOnDestroy(): void {\n // Remove Picker if is visible\n if (this._showselector && this.pickercontainer?.nativeElement) {\n document.body.removeChild(this.pickercontainer.nativeElement);\n }\n\n // Unregister Event Listener\n window.removeEventListener('scroll', this.onContentChange, true);\n window.removeEventListener('resize', this.onContentChange, true);\n }\n\n /**\n * Init Event\n */\n public ngOnInit(): void {\n super.ngOnInit();\n this.setDateTimeFormat();\n\n // Register Event Listener\n window.addEventListener('scroll', this.onContentChange, true);\n window.addEventListener('resize', this.onContentChange, true);\n }\n\n /**\n * setzt das value von typ string zu property valuestring\n */\n public setValueString(v: string) {\n this.valuestring = v;\n }\n\n /**\n * Validator\n */\n public validateData(c: AbstractControl): ValidationErrors | null {\n let error: ValidationErrors | null = null;\n\n if (this.valuestring !== null && this.valuestring.indexOf('_') >= 0) {\n error = CreateValidationError(\n 'invalidtype',\n this.validationmessagedatetimeformat,\n this.validationmessagedatetimeformatsummary\n );\n\n if (error) {\n return error;\n }\n }\n\n error = Validation.isValidDate(\n this.validationmessagedatetimeformat,\n this.validationmessagedatetimeformatsummary\n )(c);\n\n if (this.isrequired) {\n error = Validation.required(this.validationmessagerequired, this.validationmessagerequiredsummary)(c);\n }\n\n return error;\n }\n\n /**\n * Overwrite WriteValue to Set correct Date Object\n */\n public writeValue(value: Date | string) {\n if (value === '' || value === null || value === undefined) {\n // Reset Value String, damit beim Update des Models auch das Input Feld geleert wird.\n this._valueAsString = '';\n // Set Internal Property\n this._value = null;\n } else {\n this._value = this.getDate(value).toDate();\n }\n\n super.writeValue(this._value);\n }\n\n // #endregion Public Methods\n\n // #region Protected Methods\n\n protected getArrowHeight(): number {\n return this.pickerarrow ? this.pickerarrow.nativeElement.offsetHeight : 0;\n }\n\n protected getArrowWidth(): number {\n return this.pickerarrow ? this.pickerarrow.nativeElement.offsetWidth : 0;\n }\n\n /**\n * Calculates the position of the tooltip from links\n */\n protected getPositionLeft(): number {\n const value = this.popupHelper.getPositionLeft(\n this.pickerbutton,\n this.pickercontainer,\n this.elementRef,\n this.getArrowWidth(),\n this.getArrowHeight(),\n this.position,\n false\n );\n\n // Ensure that pop-ups never appear outside the visible area on the left\n if (value < 0) {\n this.posPopupLeft = 5;\n } else {\n this.posPopupLeft = value;\n }\n\n switch (this.GetPickerPosition()) {\n case TooltipPosition.top:\n case TooltipPosition.bottom:\n this.posArrowLeft = this.getPickerWidth() / 2 - -this.getArrowWidth();\n break;\n case TooltipPosition.topend:\n case TooltipPosition.bottomend:\n this.posArrowLeft =\n this.getPickerWidth() -\n this.getArrowWidth() / 2 -\n this.popupHelper.getContainerWidth(this.pickerbutton, false) / 2;\n\n // Correction by Arrow if popup is outside the left margin\n if (value < 0) {\n this.posArrowLeft -= value * -1 + 5;\n }\n break;\n default:\n this.posArrowLeft = null;\n break;\n }\n\n return value;\n }\n\n /**\n * Calculates the position of the tooltip from the top\n */\n protected getPositionTop(): number {\n const value = this.popupHelper.getPositionTop(\n this.pickerbutton,\n this.pickercontainer,\n this.elementRef,\n this.getArrowWidth(),\n this.getArrowHeight(),\n this.position,\n false\n );\n this.posPopupTop = value;\n\n switch (this.GetPickerPosition()) {\n case TooltipPosition.left:\n case TooltipPosition.right:\n this.posArrowTop = this.getPickerHeight() / 2 - 6.5;\n break;\n default:\n this.posArrowTop = null;\n break;\n }\n\n return value;\n }\n\n // #endregion Protected Methods\n\n // #region Private Methods\n\n /**\n * method if content has changed and proportions need to be reset in the UI.\n */\n private readonly onContentChange = (): void => {\n // Do nothing if is not visible\n if (!this._showselector) {\n return;\n }\n\n setTimeout(() => {\n this.getPositionLeft();\n this.getPositionTop();\n });\n };\n\n private setDateTimeFormat(): void {\n // HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686\n if (this.ngControl) {\n (this.ngControl as unknown as IDateTimeControl).datetimeformatstring = this.GetDateTimeFormatString();\n }\n }\n\n // #endregion Private Methods\n}\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"541b498e0d71536e2c31a67039cafe8d7e993ad5"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
|
|
2
|
-
cov_10tnjmv4ka=function(){return actualCoverage;};}return actualCoverage;}cov_10tnjmv4ka();import{TooltipPosition}from'../utilities/enums';import{PopUpHelper}from'../utilities/popuphelper';import{Validation}from'../validation';import{CreateValidationError}from'../validation/validationerrorcreator';import{SacBaseModelControl}from'./basemodelcontrol';import{Directive,Input,ViewChild}from'@angular/core';import*as moment_ from'moment';import*as i0 from"@angular/core";import*as i1 from"../controls/layout/formlayout";/**
|
|
1
|
+
function cov_10tnjmv4ka(){var path="/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2020/common/basedatetimecontrol.mjs";var hash="7d415e932f62afbea4c5f94696343439a40fa09c";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/runner/work/simpleangularcontrols/simpleangularcontrols/ch.jnetwork.sac-controls/dist/sac-common/esm2020/common/basedatetimecontrol.mjs",statementMap:{"0":{start:{line:24,column:8},end:{line:24,column:36}},"1":{start:{line:25,column:8},end:{line:25,column:37}},"2":{start:{line:26,column:8},end:{line:26,column:27}},"3":{start:{line:31,column:8},end:{line:31,column:45}},"4":{start:{line:35,column:8},end:{line:35,column:33}},"5":{start:{line:39,column:8},end:{line:39,column:47}},"6":{start:{line:43,column:8},end:{line:43,column:35}},"7":{start:{line:47,column:8},end:{line:47,column:32}},"8":{start:{line:51,column:8},end:{line:51,column:41}},"9":{start:{line:55,column:8},end:{line:55,column:46}},"10":{start:{line:59,column:8},end:{line:59,column:32}},"11":{start:{line:63,column:8},end:{line:63,column:33}},"12":{start:{line:67,column:8},end:{line:67,column:32}},"13":{start:{line:71,column:8},end:{line:71,column:30}},"14":{start:{line:75,column:8},end:{line:75,column:29}},"15":{start:{line:81,column:8},end:{line:81,column:43}},"16":{start:{line:85,column:8},end:{line:85,column:103}},"17":{start:{line:89,column:8},end:{line:89,column:117}},"18":{start:{line:93,column:8},end:{line:93,column:91}},"19":{start:{line:97,column:8},end:{line:97,column:105}},"20":{start:{line:103,column:8},end:{line:112,column:10}},"21":{start:{line:105,column:12},end:{line:107,column:13}},"22":{start:{line:106,column:16},end:{line:106,column:23}},"23":{start:{line:108,column:12},end:{line:111,column:15}},"24":{start:{line:109,column:16},end:{line:109,column:39}},"25":{start:{line:110,column:16},end:{line:110,column:38}},"26":{start:{line:120,column:8},end:{line:122,column:9}},"27":{start:{line:121,column:12},end:{line:121,column:60}},"28":{start:{line:123,column:8},end:{line:123,column:38}},"29":{start:{line:124,column:8},end:{line:124,column:31}},"30":{start:{line:125,column:8},end:{line:125,column:35}},"31":{start:{line:128,column:8},end:{line:128,column:36}},"32":{start:{line:134,column:8},end:{line:140,column:9}},"33":{start:{line:135,column:12},end:{line:135,column:39}},"34":{start:{line:138,column:25},end:{line:138,column:52}},"35":{start:{line:139,column:12},end:{line:139,column:71}},"36":{start:{line:146,column:8},end:{line:146,column:32}},"37":{start:{line:147,column:19},end:{line:147,column:73}},"38":{start:{line:148,column:8},end:{line:148,column:58}},"39":{start:{line:149,column:8},end:{line:154,column:9}},"40":{start:{line:150,column:12},end:{line:150,column:39}},"41":{start:{line:153,column:12},end:{line:153,column:30}},"42":{start:{line:156,column:8},end:{line:156,column:35}},"43":{start:{line:157,column:8},end:{line:157,column:43}},"44":{start:{line:163,column:8},end:{line:163,column:159}},"45":{start:{line:169,column:21},end:{line:169,column:40}},"46":{start:{line:170,column:21},end:{line:170,column:42}},"47":{start:{line:171,column:22},end:{line:171,column:40}},"48":{start:{line:172,column:20},end:{line:172,column:37}},"49":{start:{line:173,column:22},end:{line:173,column:40}},"50":{start:{line:174,column:24},end:{line:174,column:44}},"51":{start:{line:175,column:24},end:{line:175,column:44}},"52":{start:{line:176,column:8},end:{line:176,column:80}},"53":{start:{line:182,column:8},end:{line:182,column:69}},"54":{start:{line:188,column:8},end:{line:188,column:68}},"55":{start:{line:192,column:8},end:{line:194,column:9}},"56":{start:{line:193,column:12},end:{line:193,column:74}},"57":{start:{line:196,column:8},end:{line:196,column:73}},"58":{start:{line:197,column:8},end:{line:197,column:73}},"59":{start:{line:203,column:8},end:{line:203,column:25}},"60":{start:{line:204,column:8},end:{line:204,column:33}},"61":{start:{line:206,column:8},end:{line:206,column:70}},"62":{start:{line:207,column:8},end:{line:207,column:70}},"63":{start:{line:213,column:8},end:{line:213,column:29}},"64":{start:{line:219,column:20},end:{line:219,column:24}},"65":{start:{line:220,column:8},end:{line:225,column:9}},"66":{start:{line:221,column:12},end:{line:221,column:140}},"67":{start:{line:222,column:12},end:{line:224,column:13}},"68":{start:{line:223,column:16},end:{line:223,column:29}},"69":{start:{line:226,column:8},end:{line:226,column:125}},"70":{start:{line:227,column:8},end:{line:229,column:9}},"71":{start:{line:228,column:12},end:{line:228,column:114}},"72":{start:{line:230,column:8},end:{line:230,column:21}},"73":{start:{line:236,column:8},end:{line:244,column:9}},"74":{start:{line:238,column:12},end:{line:238,column:37}},"75":{start:{line:240,column:12},end:{line:240,column:31}},"76":{start:{line:243,column:12},end:{line:243,column:55}},"77":{start:{line:245,column:8},end:{line:245,column:38}},"78":{start:{line:250,column:8},end:{line:250,column:82}},"79":{start:{line:253,column:8},end:{line:253,column:81}},"80":{start:{line:259,column:22},end:{line:259,column:179}},"81":{start:{line:261,column:8},end:{line:266,column:9}},"82":{start:{line:262,column:12},end:{line:262,column:34}},"83":{start:{line:265,column:12},end:{line:265,column:38}},"84":{start:{line:267,column:8},end:{line:286,column:9}},"85":{start:{line:270,column:16},end:{line:270,column:86}},"86":{start:{line:271,column:16},end:{line:271,column:22}},"87":{start:{line:274,column:16},end:{line:277,column:89}},"88":{start:{line:279,column:16},end:{line:281,column:17}},"89":{start:{line:280,column:20},end:{line:280,column:56}},"90":{start:{line:282,column:16},end:{line:282,column:22}},"91":{start:{line:284,column:16},end:{line:284,column:41}},"92":{start:{line:285,column:16},end:{line:285,column:22}},"93":{start:{line:287,column:8},end:{line:287,column:21}},"94":{start:{line:293,column:22},end:{line:293,column:178}},"95":{start:{line:294,column:8},end:{line:294,column:33}},"96":{start:{line:295,column:8},end:{line:303,column:9}},"97":{start:{line:298,column:16},end:{line:298,column:68}},"98":{start:{line:299,column:16},end:{line:299,column:22}},"99":{start:{line:301,column:16},end:{line:301,column:40}},"100":{start:{line:302,column:16},end:{line:302,column:22}},"101":{start:{line:304,column:8},end:{line:304,column:21}},"102":{start:{line:308,column:8},end:{line:310,column:9}},"103":{start:{line:309,column:12},end:{line:309,column:81}},"104":{start:{line:313,column:0},end:{line:313,column:305}},"105":{start:{line:314,column:0},end:{line:314,column:944}},"106":{start:{line:315,column:0},end:{line:345,column:20}},"107":{start:{line:317,column:42},end:{line:317,column:164}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:23,column:4},end:{line:23,column:5}},loc:{start:{line:23,column:57},end:{line:113,column:5}},line:23},"1":{name:"(anonymous_1)",decl:{start:{line:103,column:31},end:{line:103,column:32}},loc:{start:{line:103,column:37},end:{line:112,column:9}},line:103},"2":{name:"(anonymous_2)",decl:{start:{line:108,column:23},end:{line:108,column:24}},loc:{start:{line:108,column:29},end:{line:111,column:13}},line:108},"3":{name:"(anonymous_3)",decl:{start:{line:119,column:4},end:{line:119,column:5}},loc:{start:{line:119,column:23},end:{line:126,column:5}},line:119},"4":{name:"(anonymous_4)",decl:{start:{line:127,column:4},end:{line:127,column:5}},loc:{start:{line:127,column:18},end:{line:129,column:5}},line:127},"5":{name:"(anonymous_5)",decl:{start:{line:133,column:4},end:{line:133,column:5}},loc:{start:{line:133,column:22},end:{line:141,column:5}},line:133},"6":{name:"(anonymous_6)",decl:{start:{line:145,column:4},end:{line:145,column:5}},loc:{start:{line:145,column:23},end:{line:158,column:5}},line:145},"7":{name:"(anonymous_7)",decl:{start:{line:162,column:4},end:{line:162,column:5}},loc:{start:{line:162,column:24},end:{line:164,column:5}},line:162},"8":{name:"(anonymous_8)",decl:{start:{line:168,column:4},end:{line:168,column:5}},loc:{start:{line:168,column:23},end:{line:177,column:5}},line:168},"9":{name:"(anonymous_9)",decl:{start:{line:181,column:4},end:{line:181,column:5}},loc:{start:{line:181,column:22},end:{line:183,column:5}},line:181},"10":{name:"(anonymous_10)",decl:{start:{line:187,column:4},end:{line:187,column:5}},loc:{start:{line:187,column:21},end:{line:189,column:5}},line:187},"11":{name:"(anonymous_11)",decl:{start:{line:190,column:4},end:{line:190,column:5}},loc:{start:{line:190,column:18},end:{line:198,column:5}},line:190},"12":{name:"(anonymous_12)",decl:{start:{line:202,column:4},end:{line:202,column:5}},loc:{start:{line:202,column:15},end:{line:208,column:5}},line:202},"13":{name:"(anonymous_13)",decl:{start:{line:212,column:4},end:{line:212,column:5}},loc:{start:{line:212,column:22},end:{line:214,column:5}},line:212},"14":{name:"(anonymous_14)",decl:{start:{line:218,column:4},end:{line:218,column:5}},loc:{start:{line:218,column:20},end:{line:231,column:5}},line:218},"15":{name:"(anonymous_15)",decl:{start:{line:235,column:4},end:{line:235,column:5}},loc:{start:{line:235,column:22},end:{line:246,column:5}},line:235},"16":{name:"(anonymous_16)",decl:{start:{line:249,column:4},end:{line:249,column:5}},loc:{start:{line:249,column:21},end:{line:251,column:5}},line:249},"17":{name:"(anonymous_17)",decl:{start:{line:252,column:4},end:{line:252,column:5}},loc:{start:{line:252,column:20},end:{line:254,column:5}},line:252},"18":{name:"(anonymous_18)",decl:{start:{line:258,column:4},end:{line:258,column:5}},loc:{start:{line:258,column:22},end:{line:288,column:5}},line:258},"19":{name:"(anonymous_19)",decl:{start:{line:292,column:4},end:{line:292,column:5}},loc:{start:{line:292,column:21},end:{line:305,column:5}},line:292},"20":{name:"(anonymous_20)",decl:{start:{line:306,column:4},end:{line:306,column:5}},loc:{start:{line:306,column:24},end:{line:311,column:5}},line:306},"21":{name:"(anonymous_21)",decl:{start:{line:317,column:28},end:{line:317,column:29}},loc:{start:{line:317,column:40},end:{line:317,column:166}},line:317}},branchMap:{"0":{loc:{start:{line:105,column:12},end:{line:107,column:13}},type:"if",locations:[{start:{line:105,column:12},end:{line:107,column:13}},{start:{line:105,column:12},end:{line:107,column:13}}],line:105},"1":{loc:{start:{line:120,column:8},end:{line:122,column:9}},type:"if",locations:[{start:{line:120,column:8},end:{line:122,column:9}},{start:{line:120,column:8},end:{line:122,column:9}}],line:120},"2":{loc:{start:{line:134,column:8},end:{line:140,column:9}},type:"if",locations:[{start:{line:134,column:8},end:{line:140,column:9}},{start:{line:134,column:8},end:{line:140,column:9}}],line:134},"3":{loc:{start:{line:149,column:8},end:{line:154,column:9}},type:"if",locations:[{start:{line:149,column:8},end:{line:154,column:9}},{start:{line:149,column:8},end:{line:154,column:9}}],line:149},"4":{loc:{start:{line:192,column:8},end:{line:194,column:9}},type:"if",locations:[{start:{line:192,column:8},end:{line:194,column:9}},{start:{line:192,column:8},end:{line:194,column:9}}],line:192},"5":{loc:{start:{line:192,column:12},end:{line:192,column:69}},type:"binary-expr",locations:[{start:{line:192,column:12},end:{line:192,column:30}},{start:{line:192,column:34},end:{line:192,column:69}}],line:192},"6":{loc:{start:{line:220,column:8},end:{line:225,column:9}},type:"if",locations:[{start:{line:220,column:8},end:{line:225,column:9}},{start:{line:220,column:8},end:{line:225,column:9}}],line:220},"7":{loc:{start:{line:220,column:12},end:{line:220,column:75}},type:"binary-expr",locations:[{start:{line:220,column:12},end:{line:220,column:37}},{start:{line:220,column:41},end:{line:220,column:75}}],line:220},"8":{loc:{start:{line:222,column:12},end:{line:224,column:13}},type:"if",locations:[{start:{line:222,column:12},end:{line:224,column:13}},{start:{line:222,column:12},end:{line:224,column:13}}],line:222},"9":{loc:{start:{line:227,column:8},end:{line:229,column:9}},type:"if",locations:[{start:{line:227,column:8},end:{line:229,column:9}},{start:{line:227,column:8},end:{line:229,column:9}}],line:227},"10":{loc:{start:{line:236,column:8},end:{line:244,column:9}},type:"if",locations:[{start:{line:236,column:8},end:{line:244,column:9}},{start:{line:236,column:8},end:{line:244,column:9}}],line:236},"11":{loc:{start:{line:236,column:12},end:{line:236,column:65}},type:"binary-expr",locations:[{start:{line:236,column:12},end:{line:236,column:24}},{start:{line:236,column:28},end:{line:236,column:42}},{start:{line:236,column:46},end:{line:236,column:65}}],line:236},"12":{loc:{start:{line:250,column:15},end:{line:250,column:81}},type:"cond-expr",locations:[{start:{line:250,column:34},end:{line:250,column:77}},{start:{line:250,column:80},end:{line:250,column:81}}],line:250},"13":{loc:{start:{line:253,column:15},end:{line:253,column:80}},type:"cond-expr",locations:[{start:{line:253,column:34},end:{line:253,column:76}},{start:{line:253,column:79},end:{line:253,column:80}}],line:253},"14":{loc:{start:{line:261,column:8},end:{line:266,column:9}},type:"if",locations:[{start:{line:261,column:8},end:{line:266,column:9}},{start:{line:261,column:8},end:{line:266,column:9}}],line:261},"15":{loc:{start:{line:267,column:8},end:{line:286,column:9}},type:"switch",locations:[{start:{line:268,column:12},end:{line:268,column:37}},{start:{line:269,column:12},end:{line:271,column:22}},{start:{line:272,column:12},end:{line:272,column:40}},{start:{line:273,column:12},end:{line:282,column:22}},{start:{line:283,column:12},end:{line:285,column:22}}],line:267},"16":{loc:{start:{line:279,column:16},end:{line:281,column:17}},type:"if",locations:[{start:{line:279,column:16},end:{line:281,column:17}},{start:{line:279,column:16},end:{line:281,column:17}}],line:279},"17":{loc:{start:{line:295,column:8},end:{line:303,column:9}},type:"switch",locations:[{start:{line:296,column:12},end:{line:296,column:38}},{start:{line:297,column:12},end:{line:299,column:22}},{start:{line:300,column:12},end:{line:302,column:22}}],line:295},"18":{loc:{start:{line:308,column:8},end:{line:310,column:9}},type:"if",locations:[{start:{line:308,column:8},end:{line:310,column:9}},{start:{line:308,column:8},end:{line:310,column:9}}],line:308}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0,0,0,0],"16":[0,0],"17":[0,0,0],"18":[0,0]},inputSourceMap:{version:3,file:"basedatetimecontrol.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/common/basedatetimecontrol.ts"],names:[],mappings:"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",sourcesContent:["import { SacFormLayoutCommon } from '../controls/layout/formlayout';\nimport { IDateTimeControl } from '../interfaces/idatetimecontrol';\nimport { TooltipPosition } from '../utilities/enums';\nimport { PopUpHelper } from '../utilities/popuphelper';\nimport { Validation } from '../validation';\nimport { CreateValidationError } from '../validation/validationerrorcreator';\nimport { SacBaseModelControl } from './basemodelcontrol';\nimport { ChangeDetectorRef, Directive, ElementRef, Injector, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { IMaskDirective } from 'angular-imask';\nimport * as moment_ from 'moment';\n\n/**\n * Base Klasse f\xFCr Date/Time Controls\n */\n@Directive()\nexport abstract class SacBaseDateTimeControl extends SacBaseModelControl<Date> implements OnInit, OnDestroy {\n // #region Properties\n\n /**\n * Helper class to display tooltip on correct position\n */\n private readonly popupHelper: PopUpHelper = new PopUpHelper();\n\n /**\n * das property enthielt das Value als string. Default ist ''\n */\n protected _valueAsString = '';\n\n /**\n * Containers for the datetime picker\n */\n protected pickercontainer: ElementRef<HTMLElement>;\n\n /**\n * Property for enum in Angular HTML template\n */\n public TooltipPosition = TooltipPosition;\n\n /**\n * Definiert ob der Date Selector angezeigt wird\n */\n public _showselector: boolean = false;\n\n /**\n * Reference to imask directive in any datetime controls\n */\n @ViewChild(IMaskDirective, { static: false })\n public iMask: IMaskDirective<any>;\n\n /**\n * Definiert das Control als Required\n */\n @Input() public isrequired: boolean = false;\n\n /**\n * Moment JS Instance\n */\n public moment = moment_['default'];\n\n /**\n * Arrow Item of Picker Element. Required to set the position of arrow correctly\n */\n public pickerPosition = TooltipPosition;\n @ViewChild('pickerarrow', { static: false })\n public pickerarrow: ElementRef<HTMLElement> | null;\n\n /**\n * Name of the container for content (e.g. icon) on which the tooltip is displayed.\n */\n @ViewChild('pickerbutton', { static: true })\n public pickerbutton: ElementRef<HTMLElement>;\n\n /**\n * TextBox Placeholder\n */\n @Input() public placeholder: string = null;\n\n /**\n * Position of the picker arrow at the left\n */\n public posArrowLeft: number | null = null;\n\n /**\n * Position of the picker arrow at the top\n */\n public posArrowTop: number | null = null;\n\n /**\n * Position of the picker at the left\n */\n public posPopupLeft: number = 0;\n\n /**\n * Position of the picker at the top\n */\n public posPopupTop: number = 0;\n\n /**\n * Position of the datetime picker. Values: left|top|right|bottom|auto\n *\n * Value 'auto' can be combined with another value.\n */\n @Input()\n public position: string = 'bottomend|topend';\n\n /**\n * Resource Key f\xFCr Validation Message DateTimeFormat bei Control\n */\n @Input() public validationmessagedatetimeformat: string = this.validationKeyService.ValidationErrorDatetimeFormat;\n\n /**\n * Resource Key f\xFCr Validation Message DateTimeFormat in Validation Summary\n */\n @Input() public validationmessagedatetimeformatsummary: string =\n this.validationKeyService.ValidationErrorSummaryDatetimeFormat;\n\n /**\n * Resource Key f\xFCr Validation Message Required bei Control\n */\n @Input() public validationmessagerequired: string = this.validationKeyService.ValidationErrorRequired;\n\n /**\n * Resource Key f\xFCr Validation Message Required in Validation Summary\n */\n @Input() public validationmessagerequiredsummary: string = this.validationKeyService.ValidationErrorSummaryRequired;\n\n // #endregion Properties\n\n // #region Constructors\n\n /**\n * Constructor\n * @param formlayout SacFormLayoutCommon to define scoped layout settings\n * @param injector Injector for injecting services\n * @param elementRef reference to html element\n */\n constructor(\n formlayout: SacFormLayoutCommon,\n injector: Injector,\n protected elementRef: ElementRef,\n private readonly cdRef: ChangeDetectorRef\n ) {\n super(formlayout, injector);\n }\n\n // #endregion Constructors\n\n // #region Public Getters And Setters\n\n /**\n * Setter for the name of the container for the tooltip. Is required as the tooltip can be hidden via ngIf.\n */\n @ViewChild('picker', { static: false })\n public set picker(picker: ElementRef) {\n if (picker !== undefined) {\n document.body.appendChild(picker.nativeElement);\n }\n\n this.pickercontainer = picker;\n this.onContentChange();\n this.cdRef.detectChanges();\n }\n\n public get tooltop(): ElementRef {\n return this.pickercontainer;\n }\n\n /**\n * getter f\xFCr valuestring\n */\n public get valuestring(): string {\n if (this.value === null) {\n return this._valueAsString;\n } else {\n const date = this.moment.utc(this.value);\n return date.local().format(this.GetDateTimeFormatString());\n }\n }\n\n /**\n * Das Input bekommt das value von typ string\n */\n @Input()\n public set valuestring(v: string) {\n this._valueAsString = v;\n let date: moment_.Moment = this.moment(v, [this.GetDateTimeFormatString()], true);\n\n date = this.ModifyParsedDateTimeValue(date).utc();\n\n if (date.isValid()) {\n this.value = date.toDate();\n } else {\n this.value = null;\n }\n\n // update imaks reference\n this.cdRef.detectChanges();\n this.iMask.maskRef.updateControl();\n }\n\n // #endregion Public Getters And Setters\n\n // #region Public Methods\n\n /**\n * Die methode returns dateTime in string\n */\n public abstract GetDateTimeFormatString(): string;\n\n /**\n * Returns the position of the tooltip\n */\n public GetPickerPosition(): TooltipPosition {\n return this.popupHelper.getDisplayPosition(\n this.pickerbutton,\n this.pickercontainer,\n this.getArrowWidth(),\n this.getArrowHeight(),\n this.position,\n false\n );\n }\n\n /**\n * Die methode modifiziert das eingegebene Value von typ Moment\n */\n public abstract ModifyParsedDateTimeValue(v: moment_.Moment): moment_.Moment;\n\n /**\n * JSON Date String in ein UTC DateTime Object konvertieren, welches vom Control verwendete werden kann\n */\n public getDate(timestamp): moment.Moment {\n const date = new Date(timestamp);\n const year = date.getUTCFullYear();\n const month = date.getUTCMonth();\n const day = date.getUTCDate();\n const hours = date.getUTCHours();\n const minutes = date.getUTCMinutes();\n const seconds = date.getUTCSeconds();\n\n return this.moment(Date.UTC(year, month, day, hours, minutes, seconds));\n }\n\n /**\n * Calculates the height of the tooltip\n */\n public getPickerHeight(): number {\n return this.popupHelper.getPopupHeight(this.pickercontainer);\n }\n\n /**\n * Calculates the width of the picker\n */\n public getPickerWidth(): number {\n return this.popupHelper.getPopupWidth(this.pickercontainer);\n }\n\n public ngOnDestroy(): void {\n // Remove Picker if is visible\n if (this._showselector && this.pickercontainer?.nativeElement) {\n document.body.removeChild(this.pickercontainer.nativeElement);\n }\n\n // Unregister Event Listener\n window.removeEventListener('scroll', this.onContentChange, true);\n window.removeEventListener('resize', this.onContentChange, true);\n }\n\n /**\n * Init Event\n */\n public ngOnInit(): void {\n super.ngOnInit();\n this.setDateTimeFormat();\n\n // Register Event Listener\n window.addEventListener('scroll', this.onContentChange, true);\n window.addEventListener('resize', this.onContentChange, true);\n }\n\n /**\n * setzt das value von typ string zu property valuestring\n */\n public setValueString(v: string) {\n this.valuestring = v;\n }\n\n /**\n * Validator\n */\n public validateData(c: AbstractControl): ValidationErrors | null {\n let error: ValidationErrors | null = null;\n\n if (this.valuestring !== null && this.valuestring.indexOf('_') >= 0) {\n error = CreateValidationError(\n 'invalidtype',\n this.validationmessagedatetimeformat,\n this.validationmessagedatetimeformatsummary\n );\n\n if (error) {\n return error;\n }\n }\n\n error = Validation.isValidDate(\n this.validationmessagedatetimeformat,\n this.validationmessagedatetimeformatsummary\n )(c);\n\n if (this.isrequired) {\n error = Validation.required(this.validationmessagerequired, this.validationmessagerequiredsummary)(c);\n }\n\n return error;\n }\n\n /**\n * Overwrite WriteValue to Set correct Date Object\n */\n public writeValue(value: Date | string) {\n if (value === '' || value === null || value === undefined) {\n // Reset Value String, damit beim Update des Models auch das Input Feld geleert wird.\n this._valueAsString = '';\n // Set Internal Property\n this._value = null;\n } else {\n this._value = this.getDate(value).toDate();\n }\n\n super.writeValue(this._value);\n }\n\n // #endregion Public Methods\n\n // #region Protected Methods\n\n protected getArrowHeight(): number {\n return this.pickerarrow ? this.pickerarrow.nativeElement.offsetHeight : 0;\n }\n\n protected getArrowWidth(): number {\n return this.pickerarrow ? this.pickerarrow.nativeElement.offsetWidth : 0;\n }\n\n /**\n * Calculates the position of the tooltip from links\n */\n protected getPositionLeft(): number {\n const value = this.popupHelper.getPositionLeft(\n this.pickerbutton,\n this.pickercontainer,\n this.elementRef,\n this.getArrowWidth(),\n this.getArrowHeight(),\n this.position,\n false\n );\n\n // Ensure that pop-ups never appear outside the visible area on the left\n if (value < 0) {\n this.posPopupLeft = 5;\n } else {\n this.posPopupLeft = value;\n }\n\n switch (this.GetPickerPosition()) {\n case TooltipPosition.top:\n case TooltipPosition.bottom:\n this.posArrowLeft = this.getPickerWidth() / 2 - -this.getArrowWidth();\n break;\n case TooltipPosition.topend:\n case TooltipPosition.bottomend:\n this.posArrowLeft =\n this.getPickerWidth() -\n this.getArrowWidth() / 2 -\n this.popupHelper.getContainerWidth(this.pickerbutton, false) / 2;\n\n // Correction by Arrow if popup is outside the left margin\n if (value < 0) {\n this.posArrowLeft -= value * -1 + 5;\n }\n break;\n default:\n this.posArrowLeft = null;\n break;\n }\n\n return value;\n }\n\n /**\n * Calculates the position of the tooltip from the top\n */\n protected getPositionTop(): number {\n const value = this.popupHelper.getPositionTop(\n this.pickerbutton,\n this.pickercontainer,\n this.elementRef,\n this.getArrowWidth(),\n this.getArrowHeight(),\n this.position,\n false\n );\n this.posPopupTop = value;\n\n switch (this.GetPickerPosition()) {\n case TooltipPosition.left:\n case TooltipPosition.right:\n this.posArrowTop = this.getPickerHeight() / 2 - 6.5;\n break;\n default:\n this.posArrowTop = null;\n break;\n }\n\n return value;\n }\n\n // #endregion Protected Methods\n\n // #region Private Methods\n\n /**\n * method if content has changed and proportions need to be reset in the UI.\n */\n private readonly onContentChange = (): void => {\n // Do nothing if is not visible\n if (!this._showselector) {\n return;\n }\n\n setTimeout(() => {\n this.getPositionLeft();\n this.getPositionTop();\n });\n };\n\n private setDateTimeFormat(): void {\n // HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686\n if (this.ngControl) {\n (this.ngControl as unknown as IDateTimeControl).datetimeformatstring = this.GetDateTimeFormatString();\n }\n }\n\n // #endregion Private Methods\n}\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"7d415e932f62afbea4c5f94696343439a40fa09c"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
|
|
2
|
+
cov_10tnjmv4ka=function(){return actualCoverage;};}return actualCoverage;}cov_10tnjmv4ka();import{TooltipPosition}from'../utilities/enums';import{PopUpHelper}from'../utilities/popuphelper';import{Validation}from'../validation';import{CreateValidationError}from'../validation/validationerrorcreator';import{SacBaseModelControl}from'./basemodelcontrol';import{Directive,Input,ViewChild}from'@angular/core';import{IMaskDirective}from'angular-imask';import*as moment_ from'moment';import*as i0 from"@angular/core";import*as i1 from"../controls/layout/formlayout";/**
|
|
3
3
|
* Base Klasse für Date/Time Controls
|
|
4
4
|
*/export class SacBaseDateTimeControl extends SacBaseModelControl{// #endregion Properties
|
|
5
5
|
// #region Constructors
|
|
@@ -58,36 +58,36 @@ if(!this._showselector){cov_10tnjmv4ka().b[0][0]++;cov_10tnjmv4ka().s[22]++;retu
|
|
|
58
58
|
* getter für valuestring
|
|
59
59
|
*/get valuestring(){cov_10tnjmv4ka().f[5]++;cov_10tnjmv4ka().s[32]++;if(this.value===null){cov_10tnjmv4ka().b[2][0]++;cov_10tnjmv4ka().s[33]++;return this._valueAsString;}else{cov_10tnjmv4ka().b[2][1]++;const date=(cov_10tnjmv4ka().s[34]++,this.moment.utc(this.value));cov_10tnjmv4ka().s[35]++;return date.local().format(this.GetDateTimeFormatString());}}/**
|
|
60
60
|
* Das Input bekommt das value von typ string
|
|
61
|
-
*/set valuestring(v){cov_10tnjmv4ka().f[6]++;cov_10tnjmv4ka().s[36]++;this._valueAsString=v;let date=(cov_10tnjmv4ka().s[37]++,this.moment(v,[this.GetDateTimeFormatString()],true));cov_10tnjmv4ka().s[38]++;date=this.ModifyParsedDateTimeValue(date).utc();cov_10tnjmv4ka().s[39]++;if(date.isValid()){cov_10tnjmv4ka().b[3][0]++;cov_10tnjmv4ka().s[40]++;this.value=date.toDate();}else{cov_10tnjmv4ka().b[3][1]++;cov_10tnjmv4ka().s[41]++;this.value=null;}
|
|
61
|
+
*/set valuestring(v){cov_10tnjmv4ka().f[6]++;cov_10tnjmv4ka().s[36]++;this._valueAsString=v;let date=(cov_10tnjmv4ka().s[37]++,this.moment(v,[this.GetDateTimeFormatString()],true));cov_10tnjmv4ka().s[38]++;date=this.ModifyParsedDateTimeValue(date).utc();cov_10tnjmv4ka().s[39]++;if(date.isValid()){cov_10tnjmv4ka().b[3][0]++;cov_10tnjmv4ka().s[40]++;this.value=date.toDate();}else{cov_10tnjmv4ka().b[3][1]++;cov_10tnjmv4ka().s[41]++;this.value=null;}// update imaks reference
|
|
62
|
+
cov_10tnjmv4ka().s[42]++;this.cdRef.detectChanges();cov_10tnjmv4ka().s[43]++;this.iMask.maskRef.updateControl();}/**
|
|
62
63
|
* Returns the position of the tooltip
|
|
63
|
-
*/GetPickerPosition(){cov_10tnjmv4ka().f[7]++;cov_10tnjmv4ka().s[
|
|
64
|
+
*/GetPickerPosition(){cov_10tnjmv4ka().f[7]++;cov_10tnjmv4ka().s[44]++;return this.popupHelper.getDisplayPosition(this.pickerbutton,this.pickercontainer,this.getArrowWidth(),this.getArrowHeight(),this.position,false);}/**
|
|
64
65
|
* JSON Date String in ein UTC DateTime Object konvertieren, welches vom Control verwendete werden kann
|
|
65
|
-
*/getDate(timestamp){cov_10tnjmv4ka().f[8]++;const date=(cov_10tnjmv4ka().s[
|
|
66
|
+
*/getDate(timestamp){cov_10tnjmv4ka().f[8]++;const date=(cov_10tnjmv4ka().s[45]++,new Date(timestamp));const year=(cov_10tnjmv4ka().s[46]++,date.getUTCFullYear());const month=(cov_10tnjmv4ka().s[47]++,date.getUTCMonth());const day=(cov_10tnjmv4ka().s[48]++,date.getUTCDate());const hours=(cov_10tnjmv4ka().s[49]++,date.getUTCHours());const minutes=(cov_10tnjmv4ka().s[50]++,date.getUTCMinutes());const seconds=(cov_10tnjmv4ka().s[51]++,date.getUTCSeconds());cov_10tnjmv4ka().s[52]++;return this.moment(Date.UTC(year,month,day,hours,minutes,seconds));}/**
|
|
66
67
|
* Calculates the height of the tooltip
|
|
67
|
-
*/getPickerHeight(){cov_10tnjmv4ka().f[9]++;cov_10tnjmv4ka().s[
|
|
68
|
+
*/getPickerHeight(){cov_10tnjmv4ka().f[9]++;cov_10tnjmv4ka().s[53]++;return this.popupHelper.getPopupHeight(this.pickercontainer);}/**
|
|
68
69
|
* Calculates the width of the picker
|
|
69
|
-
*/getPickerWidth(){cov_10tnjmv4ka().f[10]++;cov_10tnjmv4ka().s[
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
cov_10tnjmv4ka().s[55]++;window.removeEventListener('scroll',this.onContentChange,true);cov_10tnjmv4ka().s[56]++;window.removeEventListener('resize',this.onContentChange,true);}/**
|
|
70
|
+
*/getPickerWidth(){cov_10tnjmv4ka().f[10]++;cov_10tnjmv4ka().s[54]++;return this.popupHelper.getPopupWidth(this.pickercontainer);}ngOnDestroy(){cov_10tnjmv4ka().f[11]++;cov_10tnjmv4ka().s[55]++;// Remove Picker if is visible
|
|
71
|
+
if((cov_10tnjmv4ka().b[5][0]++,this._showselector)&&(cov_10tnjmv4ka().b[5][1]++,this.pickercontainer?.nativeElement)){cov_10tnjmv4ka().b[4][0]++;cov_10tnjmv4ka().s[56]++;document.body.removeChild(this.pickercontainer.nativeElement);}else{cov_10tnjmv4ka().b[4][1]++;}// Unregister Event Listener
|
|
72
|
+
cov_10tnjmv4ka().s[57]++;window.removeEventListener('scroll',this.onContentChange,true);cov_10tnjmv4ka().s[58]++;window.removeEventListener('resize',this.onContentChange,true);}/**
|
|
73
73
|
* Init Event
|
|
74
|
-
*/ngOnInit(){cov_10tnjmv4ka().f[
|
|
75
|
-
cov_10tnjmv4ka().s[
|
|
74
|
+
*/ngOnInit(){cov_10tnjmv4ka().f[12]++;cov_10tnjmv4ka().s[59]++;super.ngOnInit();cov_10tnjmv4ka().s[60]++;this.setDateTimeFormat();// Register Event Listener
|
|
75
|
+
cov_10tnjmv4ka().s[61]++;window.addEventListener('scroll',this.onContentChange,true);cov_10tnjmv4ka().s[62]++;window.addEventListener('resize',this.onContentChange,true);}/**
|
|
76
76
|
* setzt das value von typ string zu property valuestring
|
|
77
|
-
*/setValueString(v){cov_10tnjmv4ka().f[
|
|
77
|
+
*/setValueString(v){cov_10tnjmv4ka().f[13]++;cov_10tnjmv4ka().s[63]++;this.valuestring=v;}/**
|
|
78
78
|
* Validator
|
|
79
|
-
*/validateData(c){cov_10tnjmv4ka().f[
|
|
79
|
+
*/validateData(c){cov_10tnjmv4ka().f[14]++;let error=(cov_10tnjmv4ka().s[64]++,null);cov_10tnjmv4ka().s[65]++;if((cov_10tnjmv4ka().b[7][0]++,this.valuestring!==null)&&(cov_10tnjmv4ka().b[7][1]++,this.valuestring.indexOf('_')>=0)){cov_10tnjmv4ka().b[6][0]++;cov_10tnjmv4ka().s[66]++;error=CreateValidationError('invalidtype',this.validationmessagedatetimeformat,this.validationmessagedatetimeformatsummary);cov_10tnjmv4ka().s[67]++;if(error){cov_10tnjmv4ka().b[8][0]++;cov_10tnjmv4ka().s[68]++;return error;}else{cov_10tnjmv4ka().b[8][1]++;}}else{cov_10tnjmv4ka().b[6][1]++;}cov_10tnjmv4ka().s[69]++;error=Validation.isValidDate(this.validationmessagedatetimeformat,this.validationmessagedatetimeformatsummary)(c);cov_10tnjmv4ka().s[70]++;if(this.isrequired){cov_10tnjmv4ka().b[9][0]++;cov_10tnjmv4ka().s[71]++;error=Validation.required(this.validationmessagerequired,this.validationmessagerequiredsummary)(c);}else{cov_10tnjmv4ka().b[9][1]++;}cov_10tnjmv4ka().s[72]++;return error;}/**
|
|
80
80
|
* Overwrite WriteValue to Set correct Date Object
|
|
81
|
-
*/writeValue(value){cov_10tnjmv4ka().f[
|
|
81
|
+
*/writeValue(value){cov_10tnjmv4ka().f[15]++;cov_10tnjmv4ka().s[73]++;if((cov_10tnjmv4ka().b[11][0]++,value==='')||(cov_10tnjmv4ka().b[11][1]++,value===null)||(cov_10tnjmv4ka().b[11][2]++,value===undefined)){cov_10tnjmv4ka().b[10][0]++;cov_10tnjmv4ka().s[74]++;// Reset Value String, damit beim Update des Models auch das Input Feld geleert wird.
|
|
82
82
|
this._valueAsString='';// Set Internal Property
|
|
83
|
-
cov_10tnjmv4ka().s[
|
|
83
|
+
cov_10tnjmv4ka().s[75]++;this._value=null;}else{cov_10tnjmv4ka().b[10][1]++;cov_10tnjmv4ka().s[76]++;this._value=this.getDate(value).toDate();}cov_10tnjmv4ka().s[77]++;super.writeValue(this._value);}// #endregion Public Methods
|
|
84
84
|
// #region Protected Methods
|
|
85
|
-
getArrowHeight(){cov_10tnjmv4ka().f[
|
|
85
|
+
getArrowHeight(){cov_10tnjmv4ka().f[16]++;cov_10tnjmv4ka().s[78]++;return this.pickerarrow?(cov_10tnjmv4ka().b[12][0]++,this.pickerarrow.nativeElement.offsetHeight):(cov_10tnjmv4ka().b[12][1]++,0);}getArrowWidth(){cov_10tnjmv4ka().f[17]++;cov_10tnjmv4ka().s[79]++;return this.pickerarrow?(cov_10tnjmv4ka().b[13][0]++,this.pickerarrow.nativeElement.offsetWidth):(cov_10tnjmv4ka().b[13][1]++,0);}/**
|
|
86
86
|
* Calculates the position of the tooltip from links
|
|
87
|
-
*/getPositionLeft(){cov_10tnjmv4ka().f[
|
|
88
|
-
cov_10tnjmv4ka().s[
|
|
89
|
-
cov_10tnjmv4ka().s[
|
|
87
|
+
*/getPositionLeft(){cov_10tnjmv4ka().f[18]++;const value=(cov_10tnjmv4ka().s[80]++,this.popupHelper.getPositionLeft(this.pickerbutton,this.pickercontainer,this.elementRef,this.getArrowWidth(),this.getArrowHeight(),this.position,false));// Ensure that pop-ups never appear outside the visible area on the left
|
|
88
|
+
cov_10tnjmv4ka().s[81]++;if(value<0){cov_10tnjmv4ka().b[14][0]++;cov_10tnjmv4ka().s[82]++;this.posPopupLeft=5;}else{cov_10tnjmv4ka().b[14][1]++;cov_10tnjmv4ka().s[83]++;this.posPopupLeft=value;}cov_10tnjmv4ka().s[84]++;switch(this.GetPickerPosition()){case TooltipPosition.top:cov_10tnjmv4ka().b[15][0]++;case TooltipPosition.bottom:cov_10tnjmv4ka().b[15][1]++;cov_10tnjmv4ka().s[85]++;this.posArrowLeft=this.getPickerWidth()/2- -this.getArrowWidth();cov_10tnjmv4ka().s[86]++;break;case TooltipPosition.topend:cov_10tnjmv4ka().b[15][2]++;case TooltipPosition.bottomend:cov_10tnjmv4ka().b[15][3]++;cov_10tnjmv4ka().s[87]++;this.posArrowLeft=this.getPickerWidth()-this.getArrowWidth()/2-this.popupHelper.getContainerWidth(this.pickerbutton,false)/2;// Correction by Arrow if popup is outside the left margin
|
|
89
|
+
cov_10tnjmv4ka().s[88]++;if(value<0){cov_10tnjmv4ka().b[16][0]++;cov_10tnjmv4ka().s[89]++;this.posArrowLeft-=value*-1+5;}else{cov_10tnjmv4ka().b[16][1]++;}cov_10tnjmv4ka().s[90]++;break;default:cov_10tnjmv4ka().b[15][4]++;cov_10tnjmv4ka().s[91]++;this.posArrowLeft=null;cov_10tnjmv4ka().s[92]++;break;}cov_10tnjmv4ka().s[93]++;return value;}/**
|
|
90
90
|
* Calculates the position of the tooltip from the top
|
|
91
|
-
*/getPositionTop(){cov_10tnjmv4ka().f[
|
|
92
|
-
if(this.ngControl){cov_10tnjmv4ka().b[18][0]++;cov_10tnjmv4ka().s[101]++;this.ngControl.datetimeformatstring=this.GetDateTimeFormatString();}else{cov_10tnjmv4ka().b[18][1]++;}}}cov_10tnjmv4ka().s[102]++;SacBaseDateTimeControl.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacBaseDateTimeControl,deps:[{token:i1.SacFormLayoutCommon},{token:i0.Injector},{token:i0.ElementRef},{token:i0.ChangeDetectorRef}],target:i0.ɵɵFactoryTarget.Directive});cov_10tnjmv4ka().s[103]++;SacBaseDateTimeControl.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"13.2.7",type:SacBaseDateTimeControl,inputs:{isrequired:"isrequired",placeholder:"placeholder",position:"position",validationmessagedatetimeformat:"validationmessagedatetimeformat",validationmessagedatetimeformatsummary:"validationmessagedatetimeformatsummary",validationmessagerequired:"validationmessagerequired",validationmessagerequiredsummary:"validationmessagerequiredsummary",valuestring:"valuestring"},viewQueries:[{propertyName:"pickerarrow",first:true,predicate:["pickerarrow"],descendants:true},{propertyName:"pickerbutton",first:true,predicate:["pickerbutton"],descendants:true,static:true},{propertyName:"picker",first:true,predicate:["picker"],descendants:true}],usesInheritance:true,ngImport:i0});cov_10tnjmv4ka().s[104]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacBaseDateTimeControl,decorators:[{type:Directive}],ctorParameters:function(){cov_10tnjmv4ka().f[22]++;cov_10tnjmv4ka().s[105]++;return[{type:i1.SacFormLayoutCommon},{type:i0.Injector},{type:i0.ElementRef},{type:i0.ChangeDetectorRef}];},propDecorators:{isrequired:[{type:Input}],pickerarrow:[{type:ViewChild,args:['pickerarrow',{static:false}]}],pickerbutton:[{type:ViewChild,args:['pickerbutton',{static:true}]}],placeholder:[{type:Input}],position:[{type:Input}],validationmessagedatetimeformat:[{type:Input}],validationmessagedatetimeformatsummary:[{type:Input}],validationmessagerequired:[{type:Input}],validationmessagerequiredsummary:[{type:Input}],picker:[{type:ViewChild,args:['picker',{static:false}]}],valuestring:[{type:Input}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWRhdGV0aW1lY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBRUgsU0FBUyxFQUlULEtBQUssRUFHTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7OztBQUVsQzs7R0FFRztBQUVILE1BQU0sT0FBZ0Isc0JBQXVCLFNBQVEsbUJBQXlCO0lBeUcxRSx3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7OztPQUtHO0lBQ0gsWUFDSSxVQUErQixFQUMvQixRQUFrQixFQUNSLFVBQXNCLEVBQ2YsS0FBd0I7UUFFekMsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUhsQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUF0SDdDLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNjLGdCQUFXLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFFOUQ7O1dBRUc7UUFDTyxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQU85Qjs7V0FFRztRQUNJLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBRXpDOztXQUVHO1FBQ0ksa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFdEM7O1dBRUc7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LENBQUM7O21IQXRhaUIsc0JBQXNCO3VHQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFEM0MsU0FBUzswTEFnQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFZQyxXQUFXO3NCQURqQixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBT3BDLFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFNM0IsV0FBVztzQkFBMUIsS0FBSztnQkE0QkMsUUFBUTtzQkFEZCxLQUFLO2dCQU1VLCtCQUErQjtzQkFBOUMsS0FBSztnQkFLVSxzQ0FBc0M7c0JBQXJELEtBQUs7Z0JBTVUseUJBQXlCO3NCQUF4QyxLQUFLO2dCQUtVLGdDQUFnQztzQkFBL0MsS0FBSztnQkE2QkssTUFBTTtzQkFEaEIsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQStCM0IsV0FBVztzQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9jb250cm9scy9sYXlvdXQvZm9ybWxheW91dCc7XG5pbXBvcnQgeyBJRGF0ZVRpbWVDb250cm9sIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pZGF0ZXRpbWVjb250cm9sJztcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uL3V0aWxpdGllcy9lbnVtcyc7XG5pbXBvcnQgeyBQb3BVcEhlbHBlciB9IGZyb20gJy4uL3V0aWxpdGllcy9wb3B1cGhlbHBlcic7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBDcmVhdGVWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb25lcnJvcmNyZWF0b3InO1xuaW1wb3J0IHsgU2FjQmFzZU1vZGVsQ29udHJvbCB9IGZyb20gJy4vYmFzZW1vZGVsY29udHJvbCc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuXG4vKipcbiAqIEJhc2UgS2xhc3NlIGbDvHIgRGF0ZS9UaW1lIENvbnRyb2xzXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Jhc2VEYXRlVGltZUNvbnRyb2wgZXh0ZW5kcyBTYWNCYXNlTW9kZWxDb250cm9sPERhdGU+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIERvQ2hlY2sge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogSGVscGVyIGNsYXNzIHRvIGRpc3BsYXkgdG9vbHRpcCBvbiBjb3JyZWN0IHBvc2l0aW9uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3B1cEhlbHBlcjogUG9wVXBIZWxwZXIgPSBuZXcgUG9wVXBIZWxwZXIoKTtcblxuICAgIC8qKlxuICAgICAqIGRhcyBwcm9wZXJ0eSBlbnRoaWVsdCBkYXMgVmFsdWUgYWxzIHN0cmluZy4gRGVmYXVsdCBpc3QgJydcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbHVlQXNTdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIENvbnRhaW5lcnMgZm9yIHRoZSBkYXRldGltZSBwaWNrZXJcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcGlja2VyY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGZvciBlbnVtIGluIEFuZ3VsYXIgSFRNTCB0ZW1wbGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBUb29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmllcnQgb2IgZGVyIERhdGUgU2VsZWN0b3IgYW5nZXplaWd0IHdpcmRcbiAgICAgKi9cbiAgICBwdWJsaWMgX3Nob3dzZWxlY3RvcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5pZXJ0IGRhcyBDb250cm9sIGFscyBSZXF1aXJlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBNb21lbnQgSlMgSW5zdGFuY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xuXG4gICAgLyoqXG4gICAgICogQXJyb3cgSXRlbSBvZiBQaWNrZXIgRWxlbWVudC4gUmVxdWlyZWQgdG8gc2V0IHRoZSBwb3NpdGlvbiBvZiBhcnJvdyBjb3JyZWN0bHlcbiAgICAgKi9cbiAgICBwdWJsaWMgcGlja2VyUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XG4gICAgQFZpZXdDaGlsZCgncGlja2VyYXJyb3cnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgcGlja2VyYXJyb3c6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgY29udGVudCAoZS5nLiBpY29uKSBvbiB3aGljaCB0aGUgdG9vbHRpcCBpcyBkaXNwbGF5ZWQuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgncGlja2VyYnV0dG9uJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgcGlja2VyYnV0dG9uOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFRleHRCb3ggUGxhY2Vob2xkZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIHBvc0Fycm93TGVmdDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSB0b3BcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9zQXJyb3dUb3A6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhdCB0aGUgbGVmdFxuICAgICAqL1xuICAgIHB1YmxpYyBwb3NQb3B1cExlZnQ6IG51bWJlciA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGF0IHRoZSB0b3BcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9zUG9wdXBUb3A6IG51bWJlciA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgZGF0ZXRpbWUgcGlja2VyLiBWYWx1ZXM6IGxlZnR8dG9wfHJpZ2h0fGJvdHRvbXxhdXRvXG4gICAgICpcbiAgICAgKiBWYWx1ZSAnYXV0bycgY2FuIGJlIGNvbWJpbmVkIHdpdGggYW5vdGhlciB2YWx1ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwb3NpdGlvbjogc3RyaW5nID0gJ2JvdHRvbWVuZHx0b3BlbmQnO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIERhdGVUaW1lRm9ybWF0IGJlaSBDb250cm9sXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yRGF0ZXRpbWVGb3JtYXQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgRGF0ZVRpbWVGb3JtYXQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5OiBzdHJpbmcgPVxuICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlEYXRldGltZUZvcm1hdDtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBiZWkgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclJlcXVpcmVkO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGluIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeTogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQ7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xuICAgICAqIEBwYXJhbSBlbGVtZW50UmVmIHJlZmVyZW5jZSB0byBodG1sIGVsZW1lbnRcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbixcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZm9ybWxheW91dCwgaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvKipcbiAgICAgKiBTZXR0ZXIgZm9yIHRoZSBuYW1lIG9mIHRoZSBjb250YWluZXIgZm9yIHRoZSB0b29sdGlwLiBJcyByZXF1aXJlZCBhcyB0aGUgdG9vbHRpcCBjYW4gYmUgaGlkZGVuIHZpYSBuZ0lmLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBzZXQgcGlja2VyKHBpY2tlcjogRWxlbWVudFJlZikge1xuICAgICAgICBpZiAocGlja2VyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocGlja2VyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIgPSBwaWNrZXI7XG4gICAgICAgIHRoaXMub25Db250ZW50Q2hhbmdlKCk7XG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdG9vbHRvcCgpOiBFbGVtZW50UmVmIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VyY29udGFpbmVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldHRlciBmw7xyIHZhbHVlc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIGdldCB2YWx1ZXN0cmluZygpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlQXNTdHJpbmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5tb21lbnQudXRjKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIGRhdGUubG9jYWwoKS5mb3JtYXQodGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERhcyBJbnB1dCBiZWtvbW10IGRhcyB2YWx1ZSB2b24gdHlwIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB2YWx1ZXN0cmluZyh2OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fdmFsdWVBc1N0cmluZyA9IHY7XG4gICAgICAgIGxldCBkYXRlOiBtb21lbnRfLk1vbWVudCA9IHRoaXMubW9tZW50KHYsIFt0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCldLCB0cnVlKTtcblxuICAgICAgICBkYXRlID0gdGhpcy5Nb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKGRhdGUpLnV0YygpO1xuXG4gICAgICAgIGlmIChkYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGUudG9EYXRlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIERpZSBtZXRob2RlIHJldHVybnMgZGF0ZVRpbWUgaW4gc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IEdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIEdldFBpY2tlclBvc2l0aW9uKCk6IFRvb2x0aXBQb3NpdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldERpc3BsYXlQb3NpdGlvbihcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpZSBtZXRob2RlIG1vZGlmaXppZXJ0IGRhcyBlaW5nZWdlYmVuZSBWYWx1ZSB2b24gdHlwIE1vbWVudFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBNb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKHY6IG1vbWVudF8uTW9tZW50KTogbW9tZW50Xy5Nb21lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBKU09OIERhdGUgU3RyaW5nIGluIGVpbiBVVEMgRGF0ZVRpbWUgT2JqZWN0IGtvbnZlcnRpZXJlbiwgd2VsY2hlcyB2b20gQ29udHJvbCB2ZXJ3ZW5kZXRlIHdlcmRlbiBrYW5uXG4gICAgICovXG4gICAgcHVibGljIGdldERhdGUodGltZXN0YW1wKTogbW9tZW50Lk1vbWVudCB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xuICAgICAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRVVENGdWxsWWVhcigpO1xuICAgICAgICBjb25zdCBtb250aCA9IGRhdGUuZ2V0VVRDTW9udGgoKTtcbiAgICAgICAgY29uc3QgZGF5ID0gZGF0ZS5nZXRVVENEYXRlKCk7XG4gICAgICAgIGNvbnN0IGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpO1xuICAgICAgICBjb25zdCBtaW51dGVzID0gZGF0ZS5nZXRVVENNaW51dGVzKCk7XG4gICAgICAgIGNvbnN0IHNlY29uZHMgPSBkYXRlLmdldFVUQ1NlY29uZHMoKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5tb21lbnQoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgb2YgdGhlIHRvb2x0aXBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGlja2VySGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwSGVpZ2h0KHRoaXMucGlja2VyY29udGFpbmVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiB0aGUgcGlja2VyXG4gICAgICovXG4gICAgcHVibGljIGdldFBpY2tlcldpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwV2lkdGgodGhpcy5waWNrZXJjb250YWluZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMub25Db250ZW50Q2hhbmdlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICAvLyBSZW1vdmUgUGlja2VyIGlmIGlzIHZpc2libGVcbiAgICAgICAgaWYgKHRoaXMuX3Nob3dzZWxlY3RvciAmJiB0aGlzLnBpY2tlcmNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLnBpY2tlcmNvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVucmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0IEV2ZW50XG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnNldERhdGVUaW1lRm9ybWF0KCk7XG5cbiAgICAgICAgLy8gUmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXR6dCBkYXMgdmFsdWUgdm9uIHR5cCBzdHJpbmcgenUgcHJvcGVydHkgdmFsdWVzdHJpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0VmFsdWVTdHJpbmcodjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudmFsdWVzdHJpbmcgPSB2O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvclxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcblxuICAgICAgICBpZiAodGhpcy52YWx1ZXN0cmluZyAhPT0gbnVsbCAmJiB0aGlzLnZhbHVlc3RyaW5nLmluZGV4T2YoJ18nKSA+PSAwKSB7XG4gICAgICAgICAgICBlcnJvciA9IENyZWF0ZVZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICAgICAgICAnaW52YWxpZHR5cGUnLFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24uaXNWYWxpZERhdGUoXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQsXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5XG4gICAgICAgICkoYyk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNyZXF1aXJlZCkge1xuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLnJlcXVpcmVkKHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZCwgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeSkoYyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT3ZlcndyaXRlIFdyaXRlVmFsdWUgdG8gU2V0IGNvcnJlY3QgRGF0ZSBPYmplY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIFJlc2V0IFZhbHVlIFN0cmluZywgZGFtaXQgYmVpbSBVcGRhdGUgZGVzIE1vZGVscyBhdWNoIGRhcyBJbnB1dCBGZWxkIGdlbGVlcnQgd2lyZC5cbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlQXNTdHJpbmcgPSAnJztcbiAgICAgICAgICAgIC8vIFNldCBJbnRlcm5hbCBQcm9wZXJ0eVxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLmdldERhdGUodmFsdWUpLnRvRGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgcHJvdGVjdGVkIGdldEFycm93SGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlcmFycm93ID8gdGhpcy5waWNrZXJhcnJvdy5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCA6IDA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEFycm93V2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VyYXJyb3cgPyB0aGlzLnBpY2tlcmFycm93Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIGZyb20gbGlua3NcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0UG9zaXRpb25MZWZ0KCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3NpdGlvbkxlZnQoXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmJ1dHRvbixcbiAgICAgICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyLFxuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLFxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCksXG4gICAgICAgICAgICB0aGlzLmdldEFycm93SGVpZ2h0KCksXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBFbnN1cmUgdGhhdCBwb3AtdXBzIG5ldmVyIGFwcGVhciBvdXRzaWRlIHRoZSB2aXNpYmxlIGFyZWEgb24gdGhlIGxlZnRcbiAgICAgICAgaWYgKHZhbHVlIDwgMCkge1xuICAgICAgICAgICAgdGhpcy5wb3NQb3B1cExlZnQgPSA1O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3NQb3B1cExlZnQgPSB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodGhpcy5HZXRQaWNrZXJQb3NpdGlvbigpKSB7XG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi50b3A6XG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5ib3R0b206XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSB0aGlzLmdldFBpY2tlcldpZHRoKCkgLyAyIC0gLXRoaXMuZ2V0QXJyb3dXaWR0aCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24udG9wZW5kOlxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uYm90dG9tZW5kOlxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRQaWNrZXJXaWR0aCgpIC1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCkgLyAyIC1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3B1cEhlbHBlci5nZXRDb250YWluZXJXaWR0aCh0aGlzLnBpY2tlcmJ1dHRvbiwgZmFsc2UpIC8gMjtcblxuICAgICAgICAgICAgICAgIC8vIENvcnJlY3Rpb24gYnkgQXJyb3cgaWYgcG9wdXAgaXMgb3V0c2lkZSB0aGUgbGVmdCBtYXJnaW5cbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0IC09IHZhbHVlICogLTEgKyA1O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSBudWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIGZyb20gdGhlIHRvcFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRQb3NpdGlvblRvcCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25Ub3AoXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmJ1dHRvbixcbiAgICAgICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyLFxuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLFxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCksXG4gICAgICAgICAgICB0aGlzLmdldEFycm93SGVpZ2h0KCksXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5wb3NQb3B1cFRvcCA9IHZhbHVlO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5HZXRQaWNrZXJQb3NpdGlvbigpKSB7XG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5sZWZ0OlxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24ucmlnaHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IHRoaXMuZ2V0UGlja2VySGVpZ2h0KCkgLyAyIC0gNi41O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93VG9wID0gbnVsbDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogbWV0aG9kIGlmIGNvbnRlbnQgaGFzIGNoYW5nZWQgYW5kIHByb3BvcnRpb25zIG5lZWQgdG8gYmUgcmVzZXQgaW4gdGhlIFVJLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb25Db250ZW50Q2hhbmdlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmxlXG4gICAgICAgIGlmICghdGhpcy5fc2hvd3NlbGVjdG9yKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ2V0UG9zaXRpb25MZWZ0KCk7XG4gICAgICAgICAgICB0aGlzLmdldFBvc2l0aW9uVG9wKCk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBwcml2YXRlIHNldERhdGVUaW1lRm9ybWF0KCk6IHZvaWQge1xuICAgICAgICAvLyBIQUNLOiBBZGQgYWRkaXRpb24gcHJvcGVydHkgdG8gRm9ybUNvbnRyb2wuIENhbiBiZSBmaXhlZCBpZiBzb2x1dGlvbiBmb3IgdGlja2V0OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xOTY4NlxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElEYXRlVGltZUNvbnRyb2wpLmRhdGV0aW1lZm9ybWF0c3RyaW5nID0gdGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNcbn1cbiJdfQ==
|
|
93
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMTB0bmptdjRrYSIsImFjdHVhbENvdmVyYWdlIiwiVG9vbHRpcFBvc2l0aW9uIiwiUG9wVXBIZWxwZXIiLCJWYWxpZGF0aW9uIiwiQ3JlYXRlVmFsaWRhdGlvbkVycm9yIiwiU2FjQmFzZU1vZGVsQ29udHJvbCIsIkRpcmVjdGl2ZSIsIklucHV0IiwiVmlld0NoaWxkIiwibW9tZW50XyIsIlNhY0Jhc2VEYXRlVGltZUNvbnRyb2wiLCJjb25zdHJ1Y3RvciIsImZvcm1sYXlvdXQiLCJpbmplY3RvciIsImVsZW1lbnRSZWYiLCJjZFJlZiIsImYiLCJzIiwicG9wdXBIZWxwZXIiLCJfdmFsdWVBc1N0cmluZyIsIl9zaG93c2VsZWN0b3IiLCJpc3JlcXVpcmVkIiwibW9tZW50IiwicGlja2VyUG9zaXRpb24iLCJwbGFjZWhvbGRlciIsInBvc0Fycm93TGVmdCIsInBvc0Fycm93VG9wIiwicG9zUG9wdXBMZWZ0IiwicG9zUG9wdXBUb3AiLCJwb3NpdGlvbiIsInZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQiLCJ2YWxpZGF0aW9uS2V5U2VydmljZSIsIlZhbGlkYXRpb25FcnJvckRhdGV0aW1lRm9ybWF0IiwidmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnkiLCJWYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RGF0ZXRpbWVGb3JtYXQiLCJ2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkIiwiVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQiLCJ2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeSIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZCIsIm9uQ29udGVudENoYW5nZSIsImIiLCJzZXRUaW1lb3V0IiwiZ2V0UG9zaXRpb25MZWZ0IiwiZ2V0UG9zaXRpb25Ub3AiLCJwaWNrZXIiLCJ1bmRlZmluZWQiLCJkb2N1bWVudCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsIm5hdGl2ZUVsZW1lbnQiLCJwaWNrZXJjb250YWluZXIiLCJkZXRlY3RDaGFuZ2VzIiwidG9vbHRvcCIsInZhbHVlc3RyaW5nIiwidmFsdWUiLCJkYXRlIiwidXRjIiwibG9jYWwiLCJmb3JtYXQiLCJHZXREYXRlVGltZUZvcm1hdFN0cmluZyIsInYiLCJNb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlIiwiaXNWYWxpZCIsInRvRGF0ZSIsIkdldFBpY2tlclBvc2l0aW9uIiwiZ2V0RGlzcGxheVBvc2l0aW9uIiwicGlja2VyYnV0dG9uIiwiZ2V0QXJyb3dXaWR0aCIsImdldEFycm93SGVpZ2h0IiwiZ2V0RGF0ZSIsInRpbWVzdGFtcCIsIkRhdGUiLCJ5ZWFyIiwiZ2V0VVRDRnVsbFllYXIiLCJtb250aCIsImdldFVUQ01vbnRoIiwiZGF5IiwiZ2V0VVRDRGF0ZSIsImhvdXJzIiwiZ2V0VVRDSG91cnMiLCJtaW51dGVzIiwiZ2V0VVRDTWludXRlcyIsInNlY29uZHMiLCJnZXRVVENTZWNvbmRzIiwiVVRDIiwiZ2V0UGlja2VySGVpZ2h0IiwiZ2V0UG9wdXBIZWlnaHQiLCJnZXRQaWNrZXJXaWR0aCIsImdldFBvcHVwV2lkdGgiLCJuZ0RvQ2hlY2siLCJuZ09uRGVzdHJveSIsInJlbW92ZUNoaWxkIiwid2luZG93IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm5nT25Jbml0Iiwic2V0RGF0ZVRpbWVGb3JtYXQiLCJhZGRFdmVudExpc3RlbmVyIiwic2V0VmFsdWVTdHJpbmciLCJ2YWxpZGF0ZURhdGEiLCJjIiwiZXJyb3IiLCJpbmRleE9mIiwiaXNWYWxpZERhdGUiLCJyZXF1aXJlZCIsIndyaXRlVmFsdWUiLCJfdmFsdWUiLCJwaWNrZXJhcnJvdyIsIm9mZnNldEhlaWdodCIsIm9mZnNldFdpZHRoIiwidG9wIiwiYm90dG9tIiwidG9wZW5kIiwiYm90dG9tZW5kIiwiZ2V0Q29udGFpbmVyV2lkdGgiLCJsZWZ0IiwicmlnaHQiLCJuZ0NvbnRyb2wiLCJkYXRldGltZWZvcm1hdHN0cmluZyIsImRlcHMiLCJ0b2tlbiIsImkxIiwiU2FjRm9ybUxheW91dENvbW1vbiIsImkwIiwiSW5qZWN0b3IiLCJFbGVtZW50UmVmIiwiQ2hhbmdlRGV0ZWN0b3JSZWYiLCJ0YXJnZXQiLCLJtcm1RmFjdG9yeVRhcmdldCIsImlucHV0cyIsInZpZXdRdWVyaWVzIiwicHJvcGVydHlOYW1lIiwiZmlyc3QiLCJwcmVkaWNhdGUiLCJkZXNjZW5kYW50cyIsInN0YXRpYyIsInVzZXNJbmhlcml0YW5jZSIsIm5nSW1wb3J0IiwiZGVjb3JhdG9ycyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9jb250cm9scy9sYXlvdXQvZm9ybWxheW91dCc7XG5pbXBvcnQgeyBJRGF0ZVRpbWVDb250cm9sIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pZGF0ZXRpbWVjb250cm9sJztcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uL3V0aWxpdGllcy9lbnVtcyc7XG5pbXBvcnQgeyBQb3BVcEhlbHBlciB9IGZyb20gJy4uL3V0aWxpdGllcy9wb3B1cGhlbHBlcic7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBDcmVhdGVWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb25lcnJvcmNyZWF0b3InO1xuaW1wb3J0IHsgU2FjQmFzZU1vZGVsQ29udHJvbCB9IGZyb20gJy4vYmFzZW1vZGVsY29udHJvbCc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuXG4vKipcbiAqIEJhc2UgS2xhc3NlIGbDvHIgRGF0ZS9UaW1lIENvbnRyb2xzXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Jhc2VEYXRlVGltZUNvbnRyb2wgZXh0ZW5kcyBTYWNCYXNlTW9kZWxDb250cm9sPERhdGU+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIERvQ2hlY2sge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogSGVscGVyIGNsYXNzIHRvIGRpc3BsYXkgdG9vbHRpcCBvbiBjb3JyZWN0IHBvc2l0aW9uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3B1cEhlbHBlcjogUG9wVXBIZWxwZXIgPSBuZXcgUG9wVXBIZWxwZXIoKTtcblxuICAgIC8qKlxuICAgICAqIGRhcyBwcm9wZXJ0eSBlbnRoaWVsdCBkYXMgVmFsdWUgYWxzIHN0cmluZy4gRGVmYXVsdCBpc3QgJydcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbHVlQXNTdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIENvbnRhaW5lcnMgZm9yIHRoZSBkYXRldGltZSBwaWNrZXJcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcGlja2VyY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGZvciBlbnVtIGluIEFuZ3VsYXIgSFRNTCB0ZW1wbGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBUb29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmllcnQgb2IgZGVyIERhdGUgU2VsZWN0b3IgYW5nZXplaWd0IHdpcmRcbiAgICAgKi9cbiAgICBwdWJsaWMgX3Nob3dzZWxlY3RvcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5pZXJ0IGRhcyBDb250cm9sIGFscyBSZXF1aXJlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBNb21lbnQgSlMgSW5zdGFuY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgbW9tZW50ID0gbW9tZW50X1snZGVmYXVsdCddO1xuXG4gICAgLyoqXG4gICAgICogQXJyb3cgSXRlbSBvZiBQaWNrZXIgRWxlbWVudC4gUmVxdWlyZWQgdG8gc2V0IHRoZSBwb3NpdGlvbiBvZiBhcnJvdyBjb3JyZWN0bHlcbiAgICAgKi9cbiAgICBwdWJsaWMgcGlja2VyUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XG4gICAgQFZpZXdDaGlsZCgncGlja2VyYXJyb3cnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgcGlja2VyYXJyb3c6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgY29udGVudCAoZS5nLiBpY29uKSBvbiB3aGljaCB0aGUgdG9vbHRpcCBpcyBkaXNwbGF5ZWQuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgncGlja2VyYnV0dG9uJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgcGlja2VyYnV0dG9uOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFRleHRCb3ggUGxhY2Vob2xkZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIHBvc0Fycm93TGVmdDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSB0b3BcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9zQXJyb3dUb3A6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhdCB0aGUgbGVmdFxuICAgICAqL1xuICAgIHB1YmxpYyBwb3NQb3B1cExlZnQ6IG51bWJlciA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGF0IHRoZSB0b3BcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9zUG9wdXBUb3A6IG51bWJlciA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgZGF0ZXRpbWUgcGlja2VyLiBWYWx1ZXM6IGxlZnR8dG9wfHJpZ2h0fGJvdHRvbXxhdXRvXG4gICAgICpcbiAgICAgKiBWYWx1ZSAnYXV0bycgY2FuIGJlIGNvbWJpbmVkIHdpdGggYW5vdGhlciB2YWx1ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwb3NpdGlvbjogc3RyaW5nID0gJ2JvdHRvbWVuZHx0b3BlbmQnO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIERhdGVUaW1lRm9ybWF0IGJlaSBDb250cm9sXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yRGF0ZXRpbWVGb3JtYXQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgRGF0ZVRpbWVGb3JtYXQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5OiBzdHJpbmcgPVxuICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlEYXRldGltZUZvcm1hdDtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBiZWkgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclJlcXVpcmVkO1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGluIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeTogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQ7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSBmb3JtbGF5b3V0IFNhY0Zvcm1MYXlvdXRDb21tb24gdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xuICAgICAqIEBwYXJhbSBlbGVtZW50UmVmIHJlZmVyZW5jZSB0byBodG1sIGVsZW1lbnRcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZm9ybWxheW91dDogU2FjRm9ybUxheW91dENvbW1vbixcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZm9ybWxheW91dCwgaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvKipcbiAgICAgKiBTZXR0ZXIgZm9yIHRoZSBuYW1lIG9mIHRoZSBjb250YWluZXIgZm9yIHRoZSB0b29sdGlwLiBJcyByZXF1aXJlZCBhcyB0aGUgdG9vbHRpcCBjYW4gYmUgaGlkZGVuIHZpYSBuZ0lmLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBzZXQgcGlja2VyKHBpY2tlcjogRWxlbWVudFJlZikge1xuICAgICAgICBpZiAocGlja2VyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocGlja2VyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIgPSBwaWNrZXI7XG4gICAgICAgIHRoaXMub25Db250ZW50Q2hhbmdlKCk7XG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdG9vbHRvcCgpOiBFbGVtZW50UmVmIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VyY29udGFpbmVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldHRlciBmw7xyIHZhbHVlc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIGdldCB2YWx1ZXN0cmluZygpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlQXNTdHJpbmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5tb21lbnQudXRjKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIGRhdGUubG9jYWwoKS5mb3JtYXQodGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERhcyBJbnB1dCBiZWtvbW10IGRhcyB2YWx1ZSB2b24gdHlwIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB2YWx1ZXN0cmluZyh2OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fdmFsdWVBc1N0cmluZyA9IHY7XG4gICAgICAgIGxldCBkYXRlOiBtb21lbnRfLk1vbWVudCA9IHRoaXMubW9tZW50KHYsIFt0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCldLCB0cnVlKTtcblxuICAgICAgICBkYXRlID0gdGhpcy5Nb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKGRhdGUpLnV0YygpO1xuXG4gICAgICAgIGlmIChkYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGUudG9EYXRlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIERpZSBtZXRob2RlIHJldHVybnMgZGF0ZVRpbWUgaW4gc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IEdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIEdldFBpY2tlclBvc2l0aW9uKCk6IFRvb2x0aXBQb3NpdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldERpc3BsYXlQb3NpdGlvbihcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpZSBtZXRob2RlIG1vZGlmaXppZXJ0IGRhcyBlaW5nZWdlYmVuZSBWYWx1ZSB2b24gdHlwIE1vbWVudFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBNb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKHY6IG1vbWVudF8uTW9tZW50KTogbW9tZW50Xy5Nb21lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBKU09OIERhdGUgU3RyaW5nIGluIGVpbiBVVEMgRGF0ZVRpbWUgT2JqZWN0IGtvbnZlcnRpZXJlbiwgd2VsY2hlcyB2b20gQ29udHJvbCB2ZXJ3ZW5kZXRlIHdlcmRlbiBrYW5uXG4gICAgICovXG4gICAgcHVibGljIGdldERhdGUodGltZXN0YW1wKTogbW9tZW50Lk1vbWVudCB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xuICAgICAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRVVENGdWxsWWVhcigpO1xuICAgICAgICBjb25zdCBtb250aCA9IGRhdGUuZ2V0VVRDTW9udGgoKTtcbiAgICAgICAgY29uc3QgZGF5ID0gZGF0ZS5nZXRVVENEYXRlKCk7XG4gICAgICAgIGNvbnN0IGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpO1xuICAgICAgICBjb25zdCBtaW51dGVzID0gZGF0ZS5nZXRVVENNaW51dGVzKCk7XG4gICAgICAgIGNvbnN0IHNlY29uZHMgPSBkYXRlLmdldFVUQ1NlY29uZHMoKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5tb21lbnQoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgb2YgdGhlIHRvb2x0aXBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGlja2VySGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwSGVpZ2h0KHRoaXMucGlja2VyY29udGFpbmVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiB0aGUgcGlja2VyXG4gICAgICovXG4gICAgcHVibGljIGdldFBpY2tlcldpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwV2lkdGgodGhpcy5waWNrZXJjb250YWluZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMub25Db250ZW50Q2hhbmdlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICAvLyBSZW1vdmUgUGlja2VyIGlmIGlzIHZpc2libGVcbiAgICAgICAgaWYgKHRoaXMuX3Nob3dzZWxlY3RvciAmJiB0aGlzLnBpY2tlcmNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLnBpY2tlcmNvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVucmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0IEV2ZW50XG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnNldERhdGVUaW1lRm9ybWF0KCk7XG5cbiAgICAgICAgLy8gUmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXR6dCBkYXMgdmFsdWUgdm9uIHR5cCBzdHJpbmcgenUgcHJvcGVydHkgdmFsdWVzdHJpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0VmFsdWVTdHJpbmcodjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudmFsdWVzdHJpbmcgPSB2O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRvclxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgICAgICBsZXQgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcblxuICAgICAgICBpZiAodGhpcy52YWx1ZXN0cmluZyAhPT0gbnVsbCAmJiB0aGlzLnZhbHVlc3RyaW5nLmluZGV4T2YoJ18nKSA+PSAwKSB7XG4gICAgICAgICAgICBlcnJvciA9IENyZWF0ZVZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICAgICAgICAnaW52YWxpZHR5cGUnLFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24uaXNWYWxpZERhdGUoXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQsXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXRzdW1tYXJ5XG4gICAgICAgICkoYyk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNyZXF1aXJlZCkge1xuICAgICAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLnJlcXVpcmVkKHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZCwgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkc3VtbWFyeSkoYyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT3ZlcndyaXRlIFdyaXRlVmFsdWUgdG8gU2V0IGNvcnJlY3QgRGF0ZSBPYmplY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIFJlc2V0IFZhbHVlIFN0cmluZywgZGFtaXQgYmVpbSBVcGRhdGUgZGVzIE1vZGVscyBhdWNoIGRhcyBJbnB1dCBGZWxkIGdlbGVlcnQgd2lyZC5cbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlQXNTdHJpbmcgPSAnJztcbiAgICAgICAgICAgIC8vIFNldCBJbnRlcm5hbCBQcm9wZXJ0eVxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLmdldERhdGUodmFsdWUpLnRvRGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgcHJvdGVjdGVkIGdldEFycm93SGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlcmFycm93ID8gdGhpcy5waWNrZXJhcnJvdy5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCA6IDA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEFycm93V2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VyYXJyb3cgPyB0aGlzLnBpY2tlcmFycm93Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIGZyb20gbGlua3NcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0UG9zaXRpb25MZWZ0KCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3NpdGlvbkxlZnQoXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmJ1dHRvbixcbiAgICAgICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyLFxuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLFxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCksXG4gICAgICAgICAgICB0aGlzLmdldEFycm93SGVpZ2h0KCksXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBFbnN1cmUgdGhhdCBwb3AtdXBzIG5ldmVyIGFwcGVhciBvdXRzaWRlIHRoZSB2aXNpYmxlIGFyZWEgb24gdGhlIGxlZnRcbiAgICAgICAgaWYgKHZhbHVlIDwgMCkge1xuICAgICAgICAgICAgdGhpcy5wb3NQb3B1cExlZnQgPSA1O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3NQb3B1cExlZnQgPSB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodGhpcy5HZXRQaWNrZXJQb3NpdGlvbigpKSB7XG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi50b3A6XG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5ib3R0b206XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSB0aGlzLmdldFBpY2tlcldpZHRoKCkgLyAyIC0gLXRoaXMuZ2V0QXJyb3dXaWR0aCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24udG9wZW5kOlxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uYm90dG9tZW5kOlxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRQaWNrZXJXaWR0aCgpIC1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCkgLyAyIC1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3B1cEhlbHBlci5nZXRDb250YWluZXJXaWR0aCh0aGlzLnBpY2tlcmJ1dHRvbiwgZmFsc2UpIC8gMjtcblxuICAgICAgICAgICAgICAgIC8vIENvcnJlY3Rpb24gYnkgQXJyb3cgaWYgcG9wdXAgaXMgb3V0c2lkZSB0aGUgbGVmdCBtYXJnaW5cbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0IC09IHZhbHVlICogLTEgKyA1O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSBudWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIGZyb20gdGhlIHRvcFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRQb3NpdGlvblRvcCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25Ub3AoXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmJ1dHRvbixcbiAgICAgICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyLFxuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLFxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCksXG4gICAgICAgICAgICB0aGlzLmdldEFycm93SGVpZ2h0KCksXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5wb3NQb3B1cFRvcCA9IHZhbHVlO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5HZXRQaWNrZXJQb3NpdGlvbigpKSB7XG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5sZWZ0OlxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24ucmlnaHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IHRoaXMuZ2V0UGlja2VySGVpZ2h0KCkgLyAyIC0gNi41O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93VG9wID0gbnVsbDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogbWV0aG9kIGlmIGNvbnRlbnQgaGFzIGNoYW5nZWQgYW5kIHByb3BvcnRpb25zIG5lZWQgdG8gYmUgcmVzZXQgaW4gdGhlIFVJLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb25Db250ZW50Q2hhbmdlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmxlXG4gICAgICAgIGlmICghdGhpcy5fc2hvd3NlbGVjdG9yKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ2V0UG9zaXRpb25MZWZ0KCk7XG4gICAgICAgICAgICB0aGlzLmdldFBvc2l0aW9uVG9wKCk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBwcml2YXRlIHNldERhdGVUaW1lRm9ybWF0KCk6IHZvaWQge1xuICAgICAgICAvLyBIQUNLOiBBZGQgYWRkaXRpb24gcHJvcGVydHkgdG8gRm9ybUNvbnRyb2wuIENhbiBiZSBmaXhlZCBpZiBzb2x1dGlvbiBmb3IgdGlja2V0OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xOTY4NlxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElEYXRlVGltZUNvbnRyb2wpLmRhdGV0aW1lZm9ybWF0c3RyaW5nID0gdGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcml2YXRlIE1ldGhvZHNcbn1cbiJdLCJtYXBwaW5ncyI6Im0ybkNBc0lJO0FBQUFBLGNBQUEsU0FBQUEsQ0FBQSxTQUFBQyxjQUFBLFdBQUFBLGNBQUEsRUFBQUQsY0FBQSxHQXBJSixPQUFTRSxlQUFlLEtBQVEsb0JBQW9CLENBQ3BELE9BQVNDLFdBQVcsS0FBUSwwQkFBMEIsQ0FDdEQsT0FBU0MsVUFBVSxLQUFRLGVBQWUsQ0FDMUMsT0FBU0MscUJBQXFCLEtBQVEsc0NBQXNDLENBQzVFLE9BQVNDLG1CQUFtQixLQUFRLG9CQUFvQixDQUN4RCxPQUVJQyxTQUFTLENBSVRDLEtBQUssQ0FHTEMsU0FBUyxLQUNOLGVBQWUsQ0FFdEIsTUFBTyxHQUFLLENBQUFDLE9BQU8sS0FBTSxRQUFRLEMsa0ZBRWpDOztHQUlBLE1BQU0sTUFBZ0IsQ0FBQUMsc0JBQXVCLFFBQVEsQ0FBQUwsbUJBQXlCLENBeUcxRTtBQUVBO0FBRUE7Ozs7O09BTUFNLFlBQ0lDLFVBQStCLENBQy9CQyxRQUFrQixDQUNSQyxVQUFzQixDQUNmQyxLQUF3QixFQUFBaEIsY0FBQSxHQUFBaUIsQ0FBQSxNQUFBakIsY0FBQSxHQUFBa0IsQ0FBQSxNQUV6QyxLQUFLLENBQUNMLFVBQVUsQ0FBRUMsUUFBUSxDQUFDLENBQUNkLGNBQUEsR0FBQWtCLENBQUEsTUFIbEIsS0FBQUgsVUFBVSxDQUFWQSxVQUFVLENBQVlmLGNBQUEsR0FBQWtCLENBQUEsTUFDZixLQUFBRixLQUFLLENBQUxBLEtBQUssQ0F0SDFCO0FBRUE7O1dBQUFoQixjQUFBLEdBQUFrQixDQUFBLE1BR2lCLEtBQUFDLFdBQVcsQ0FBZ0IsR0FBSSxDQUFBaEIsV0FBVyxFQUFF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
|
|
91
|
+
*/getPositionTop(){cov_10tnjmv4ka().f[19]++;const value=(cov_10tnjmv4ka().s[94]++,this.popupHelper.getPositionTop(this.pickerbutton,this.pickercontainer,this.elementRef,this.getArrowWidth(),this.getArrowHeight(),this.position,false));cov_10tnjmv4ka().s[95]++;this.posPopupTop=value;cov_10tnjmv4ka().s[96]++;switch(this.GetPickerPosition()){case TooltipPosition.left:cov_10tnjmv4ka().b[17][0]++;case TooltipPosition.right:cov_10tnjmv4ka().b[17][1]++;cov_10tnjmv4ka().s[97]++;this.posArrowTop=this.getPickerHeight()/2-6.5;cov_10tnjmv4ka().s[98]++;break;default:cov_10tnjmv4ka().b[17][2]++;cov_10tnjmv4ka().s[99]++;this.posArrowTop=null;cov_10tnjmv4ka().s[100]++;break;}cov_10tnjmv4ka().s[101]++;return value;}setDateTimeFormat(){cov_10tnjmv4ka().f[20]++;cov_10tnjmv4ka().s[102]++;// HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686
|
|
92
|
+
if(this.ngControl){cov_10tnjmv4ka().b[18][0]++;cov_10tnjmv4ka().s[103]++;this.ngControl.datetimeformatstring=this.GetDateTimeFormatString();}else{cov_10tnjmv4ka().b[18][1]++;}}}cov_10tnjmv4ka().s[104]++;SacBaseDateTimeControl.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacBaseDateTimeControl,deps:[{token:i1.SacFormLayoutCommon},{token:i0.Injector},{token:i0.ElementRef},{token:i0.ChangeDetectorRef}],target:i0.ɵɵFactoryTarget.Directive});cov_10tnjmv4ka().s[105]++;SacBaseDateTimeControl.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"13.2.7",type:SacBaseDateTimeControl,inputs:{isrequired:"isrequired",placeholder:"placeholder",position:"position",validationmessagedatetimeformat:"validationmessagedatetimeformat",validationmessagedatetimeformatsummary:"validationmessagedatetimeformatsummary",validationmessagerequired:"validationmessagerequired",validationmessagerequiredsummary:"validationmessagerequiredsummary",valuestring:"valuestring"},viewQueries:[{propertyName:"iMask",first:true,predicate:IMaskDirective,descendants:true},{propertyName:"pickerarrow",first:true,predicate:["pickerarrow"],descendants:true},{propertyName:"pickerbutton",first:true,predicate:["pickerbutton"],descendants:true,static:true},{propertyName:"picker",first:true,predicate:["picker"],descendants:true}],usesInheritance:true,ngImport:i0});cov_10tnjmv4ka().s[106]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacBaseDateTimeControl,decorators:[{type:Directive}],ctorParameters:function(){cov_10tnjmv4ka().f[21]++;cov_10tnjmv4ka().s[107]++;return[{type:i1.SacFormLayoutCommon},{type:i0.Injector},{type:i0.ElementRef},{type:i0.ChangeDetectorRef}];},propDecorators:{iMask:[{type:ViewChild,args:[IMaskDirective,{static:false}]}],isrequired:[{type:Input}],pickerarrow:[{type:ViewChild,args:['pickerarrow',{static:false}]}],pickerbutton:[{type:ViewChild,args:['pickerbutton',{static:true}]}],placeholder:[{type:Input}],position:[{type:Input}],validationmessagedatetimeformat:[{type:Input}],validationmessagedatetimeformatsummary:[{type:Input}],validationmessagerequired:[{type:Input}],validationmessagerequiredsummary:[{type:Input}],picker:[{type:ViewChild,args:['picker',{static:false}]}],valuestring:[{type:Input}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZWRhdGV0aW1lY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQXFCLFNBQVMsRUFBd0IsS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQzs7O0FBRWxDOztHQUVHO0FBRUgsTUFBTSxPQUFnQixzQkFBdUIsU0FBUSxtQkFBeUI7SUErRzFFLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7O09BS0c7SUFDSCxZQUNJLFVBQStCLEVBQy9CLFFBQWtCLEVBQ1IsVUFBc0IsRUFDZixLQUF3QjtRQUV6QyxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBSGxCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDZixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQTVIN0MscUJBQXFCO1FBRXJCOztXQUVHO1FBQ2MsZ0JBQVcsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUU5RDs7V0FFRztRQUNPLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBTzlCOztXQUVHO1FBQ0ksb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFFekM7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ckIsbUlBQW1JO1FBQ25JLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNmLElBQUksQ0FBQyxTQUF5QyxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1NBQ3pHO0lBQ0wsQ0FBQzs7bUhBNWFpQixzQkFBc0I7dUdBQXRCLHNCQUFzQix5Y0ErQjdCLGNBQWM7MkZBL0JQLHNCQUFzQjtrQkFEM0MsU0FBUzswTEFpQ0MsS0FBSztzQkFEWCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBTTVCLFVBQVU7c0JBQXpCLEtBQUs7Z0JBWUMsV0FBVztzQkFEakIsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQU9wQyxZQUFZO3NCQURsQixTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBTTNCLFdBQVc7c0JBQTFCLEtBQUs7Z0JBNEJDLFFBQVE7c0JBRGQsS0FBSztnQkFNVSwrQkFBK0I7c0JBQTlDLEtBQUs7Z0JBS1Usc0NBQXNDO3NCQUFyRCxLQUFLO2dCQU1VLHlCQUF5QjtzQkFBeEMsS0FBSztnQkFLVSxnQ0FBZ0M7c0JBQS9DLEtBQUs7Z0JBNkJLLE1BQU07c0JBRGhCLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkErQjNCLFdBQVc7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vY29udHJvbHMvbGF5b3V0L2Zvcm1sYXlvdXQnO1xuaW1wb3J0IHsgSURhdGVUaW1lQ29udHJvbCB9IGZyb20gJy4uL2ludGVyZmFjZXMvaWRhdGV0aW1lY29udHJvbCc7XG5pbXBvcnQgeyBUb29sdGlwUG9zaXRpb24gfSBmcm9tICcuLi91dGlsaXRpZXMvZW51bXMnO1xuaW1wb3J0IHsgUG9wVXBIZWxwZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvcG9wdXBoZWxwZXInO1xuaW1wb3J0IHsgVmFsaWRhdGlvbiB9IGZyb20gJy4uL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQ3JlYXRlVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uZXJyb3JjcmVhdG9yJztcbmltcG9ydCB7IFNhY0Jhc2VNb2RlbENvbnRyb2wgfSBmcm9tICcuL2Jhc2Vtb2RlbGNvbnRyb2wnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJTWFza0RpcmVjdGl2ZSB9IGZyb20gJ2FuZ3VsYXItaW1hc2snO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuXG4vKipcbiAqIEJhc2UgS2xhc3NlIGbDvHIgRGF0ZS9UaW1lIENvbnRyb2xzXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY0Jhc2VEYXRlVGltZUNvbnRyb2wgZXh0ZW5kcyBTYWNCYXNlTW9kZWxDb250cm9sPERhdGU+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogSGVscGVyIGNsYXNzIHRvIGRpc3BsYXkgdG9vbHRpcCBvbiBjb3JyZWN0IHBvc2l0aW9uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3B1cEhlbHBlcjogUG9wVXBIZWxwZXIgPSBuZXcgUG9wVXBIZWxwZXIoKTtcblxuICAgIC8qKlxuICAgICAqIGRhcyBwcm9wZXJ0eSBlbnRoaWVsdCBkYXMgVmFsdWUgYWxzIHN0cmluZy4gRGVmYXVsdCBpc3QgJydcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbHVlQXNTdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIENvbnRhaW5lcnMgZm9yIHRoZSBkYXRldGltZSBwaWNrZXJcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcGlja2VyY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGZvciBlbnVtIGluIEFuZ3VsYXIgSFRNTCB0ZW1wbGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBUb29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmllcnQgb2IgZGVyIERhdGUgU2VsZWN0b3IgYW5nZXplaWd0IHdpcmRcbiAgICAgKi9cbiAgICBwdWJsaWMgX3Nob3dzZWxlY3RvcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlIHRvIGltYXNrIGRpcmVjdGl2ZSBpbiBhbnkgZGF0ZXRpbWUgY29udHJvbHNcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKElNYXNrRGlyZWN0aXZlLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgaU1hc2s6IElNYXNrRGlyZWN0aXZlPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmllcnQgZGFzIENvbnRyb2wgYWxzIFJlcXVpcmVkXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGlzcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIE1vbWVudCBKUyBJbnN0YW5jZVxuICAgICAqL1xuICAgIHB1YmxpYyBtb21lbnQgPSBtb21lbnRfWydkZWZhdWx0J107XG5cbiAgICAvKipcbiAgICAgKiBBcnJvdyBJdGVtIG9mIFBpY2tlciBFbGVtZW50LiBSZXF1aXJlZCB0byBzZXQgdGhlIHBvc2l0aW9uIG9mIGFycm93IGNvcnJlY3RseVxuICAgICAqL1xuICAgIHB1YmxpYyBwaWNrZXJQb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbjtcbiAgICBAVmlld0NoaWxkKCdwaWNrZXJhcnJvdycsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBwaWNrZXJhcnJvdzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciBjb250ZW50IChlLmcuIGljb24pIG9uIHdoaWNoIHRoZSB0b29sdGlwIGlzIGRpc3BsYXllZC5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdwaWNrZXJidXR0b24nLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyBwaWNrZXJidXR0b246IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogVGV4dEJveCBQbGFjZWhvbGRlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXJyb3cgYXQgdGhlIGxlZnRcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9zQXJyb3dMZWZ0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXJyb3cgYXQgdGhlIHRvcFxuICAgICAqL1xuICAgIHB1YmxpYyBwb3NBcnJvd1RvcDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGF0IHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIHBvc1BvcHVwTGVmdDogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXQgdGhlIHRvcFxuICAgICAqL1xuICAgIHB1YmxpYyBwb3NQb3B1cFRvcDogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBkYXRldGltZSBwaWNrZXIuIFZhbHVlczogbGVmdHx0b3B8cmlnaHR8Ym90dG9tfGF1dG9cbiAgICAgKlxuICAgICAqIFZhbHVlICdhdXRvJyBjYW4gYmUgY29tYmluZWQgd2l0aCBhbm90aGVyIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBvc2l0aW9uOiBzdHJpbmcgPSAnYm90dG9tZW5kfHRvcGVuZCc7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgRGF0ZVRpbWVGb3JtYXQgYmVpIENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JEYXRldGltZUZvcm1hdDtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnk6IHN0cmluZyA9XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeURhdGV0aW1lRm9ybWF0O1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGJlaSBDb250cm9sXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQ6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgaW4gVmFsaWRhdGlvbiBTdW1tYXJ5XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5OiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclN1bW1hcnlSZXF1aXJlZDtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIGZvcm1sYXlvdXQgU2FjRm9ybUxheW91dENvbW1vbiB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xuICAgICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXG4gICAgICogQHBhcmFtIGVsZW1lbnRSZWYgcmVmZXJlbmNlIHRvIGh0bWwgZWxlbWVudFxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIFNldHRlciBmb3IgdGhlIG5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgdGhlIHRvb2x0aXAuIElzIHJlcXVpcmVkIGFzIHRoZSB0b29sdGlwIGNhbiBiZSBoaWRkZW4gdmlhIG5nSWYuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgncGlja2VyJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCBwaWNrZXIocGlja2VyOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIGlmIChwaWNrZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwaWNrZXIubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lciA9IHBpY2tlcjtcbiAgICAgICAgdGhpcy5vbkNvbnRlbnRDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0b29sdG9wKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJjb250YWluZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0dGVyIGbDvHIgdmFsdWVzdHJpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHZhbHVlc3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWVBc1N0cmluZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLm1vbWVudC51dGModGhpcy52YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZS5sb2NhbCgpLmZvcm1hdCh0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGFzIElucHV0IGJla29tbXQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHZhbHVlc3RyaW5nKHY6IHN0cmluZykge1xuICAgICAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gdjtcbiAgICAgICAgbGV0IGRhdGU6IG1vbWVudF8uTW9tZW50ID0gdGhpcy5tb21lbnQodiwgW3RoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKV0sIHRydWUpO1xuXG4gICAgICAgIGRhdGUgPSB0aGlzLk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUoZGF0ZSkudXRjKCk7XG5cbiAgICAgICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0ZS50b0RhdGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdXBkYXRlIGltYWtzIHJlZmVyZW5jZVxuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5pTWFzay5tYXNrUmVmLnVwZGF0ZUNvbnRyb2woKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBEaWUgbWV0aG9kZSByZXR1cm5zIGRhdGVUaW1lIGluIHN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBHZXREYXRlVGltZUZvcm1hdFN0cmluZygpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcFxuICAgICAqL1xuICAgIHB1YmxpYyBHZXRQaWNrZXJQb3NpdGlvbigpOiBUb29sdGlwUG9zaXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXREaXNwbGF5UG9zaXRpb24oXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmJ1dHRvbixcbiAgICAgICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyLFxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd1dpZHRoKCksXG4gICAgICAgICAgICB0aGlzLmdldEFycm93SGVpZ2h0KCksXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaWUgbWV0aG9kZSBtb2RpZml6aWVydCBkYXMgZWluZ2VnZWJlbmUgVmFsdWUgdm9uIHR5cCBNb21lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZSh2OiBtb21lbnRfLk1vbWVudCk6IG1vbWVudF8uTW9tZW50O1xuXG4gICAgLyoqXG4gICAgICogSlNPTiBEYXRlIFN0cmluZyBpbiBlaW4gVVRDIERhdGVUaW1lIE9iamVjdCBrb252ZXJ0aWVyZW4sIHdlbGNoZXMgdm9tIENvbnRyb2wgdmVyd2VuZGV0ZSB3ZXJkZW4ga2FublxuICAgICAqL1xuICAgIHB1YmxpYyBnZXREYXRlKHRpbWVzdGFtcCk6IG1vbWVudC5Nb21lbnQge1xuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGltZXN0YW1wKTtcbiAgICAgICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcbiAgICAgICAgY29uc3QgbW9udGggPSBkYXRlLmdldFVUQ01vbnRoKCk7XG4gICAgICAgIGNvbnN0IGRheSA9IGRhdGUuZ2V0VVRDRGF0ZSgpO1xuICAgICAgICBjb25zdCBob3VycyA9IGRhdGUuZ2V0VVRDSG91cnMoKTtcbiAgICAgICAgY29uc3QgbWludXRlcyA9IGRhdGUuZ2V0VVRDTWludXRlcygpO1xuICAgICAgICBjb25zdCBzZWNvbmRzID0gZGF0ZS5nZXRVVENTZWNvbmRzKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubW9tZW50KERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IG9mIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIGdldFBpY2tlckhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cEhlaWdodCh0aGlzLnBpY2tlcmNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgdGhlIHBpY2tlclxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQaWNrZXJXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cFdpZHRoKHRoaXMucGlja2VyY29udGFpbmVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIC8vIFJlbW92ZSBQaWNrZXIgaWYgaXMgdmlzaWJsZVxuICAgICAgICBpZiAodGhpcy5fc2hvd3NlbGVjdG9yICYmIHRoaXMucGlja2VyY29udGFpbmVyPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRoaXMucGlja2VyY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVW5yZWdpc3RlciBFdmVudCBMaXN0ZW5lclxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXQgRXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuc2V0RGF0ZVRpbWVGb3JtYXQoKTtcblxuICAgICAgICAvLyBSZWdpc3RlciBFdmVudCBMaXN0ZW5lclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vbkNvbnRlbnRDaGFuZ2UsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNldHp0IGRhcyB2YWx1ZSB2b24gdHlwIHN0cmluZyB6dSBwcm9wZXJ0eSB2YWx1ZXN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBzZXRWYWx1ZVN0cmluZyh2OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy52YWx1ZXN0cmluZyA9IHY7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdG9yXG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRlRGF0YShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIGlmICh0aGlzLnZhbHVlc3RyaW5nICE9PSBudWxsICYmIHRoaXMudmFsdWVzdHJpbmcuaW5kZXhPZignXycpID49IDApIHtcbiAgICAgICAgICAgIGVycm9yID0gQ3JlYXRlVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgICAgICAgICdpbnZhbGlkdHlwZScsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0LFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnlcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5pc1ZhbGlkRGF0ZShcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCxcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdHN1bW1hcnlcbiAgICAgICAgKShjKTtcblxuICAgICAgICBpZiAodGhpcy5pc3JlcXVpcmVkKSB7XG4gICAgICAgICAgICBlcnJvciA9IFZhbGlkYXRpb24ucmVxdWlyZWQodGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkLCB0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5KShjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPdmVyd3JpdGUgV3JpdGVWYWx1ZSB0byBTZXQgY29ycmVjdCBEYXRlIE9iamVjdFxuICAgICAqL1xuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gUmVzZXQgVmFsdWUgU3RyaW5nLCBkYW1pdCBiZWltIFVwZGF0ZSBkZXMgTW9kZWxzIGF1Y2ggZGFzIElucHV0IEZlbGQgZ2VsZWVydCB3aXJkLlxuICAgICAgICAgICAgdGhpcy5fdmFsdWVBc1N0cmluZyA9ICcnO1xuICAgICAgICAgICAgLy8gU2V0IEludGVybmFsIFByb3BlcnR5XG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuZ2V0RGF0ZSh2YWx1ZSkudG9EYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHRoaXMuX3ZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG5cbiAgICBwcm90ZWN0ZWQgZ2V0QXJyb3dIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGlja2VyYXJyb3cgPyB0aGlzLnBpY2tlcmFycm93Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IDogMDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0QXJyb3dXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJhcnJvdyA/IHRoaXMucGlja2VyYXJyb3cubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCA6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSBsaW5rc1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRQb3NpdGlvbkxlZnQoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uTGVmdChcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYsXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIEVuc3VyZSB0aGF0IHBvcC11cHMgbmV2ZXIgYXBwZWFyIG91dHNpZGUgdGhlIHZpc2libGUgYXJlYSBvbiB0aGUgbGVmdFxuICAgICAgICBpZiAodmFsdWUgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLnBvc1BvcHVwTGVmdCA9IDU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBvc1BvcHVwTGVmdCA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLkdldFBpY2tlclBvc2l0aW9uKCkpIHtcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnRvcDpcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbTpcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9IHRoaXMuZ2V0UGlja2VyV2lkdGgoKSAvIDIgLSAtdGhpcy5nZXRBcnJvd1dpZHRoKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi50b3BlbmQ6XG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5ib3R0b21lbmQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFBpY2tlcldpZHRoKCkgLVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSAvIDIgLVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcHVwSGVscGVyLmdldENvbnRhaW5lcldpZHRoKHRoaXMucGlja2VyYnV0dG9uLCBmYWxzZSkgLyAyO1xuXG4gICAgICAgICAgICAgICAgLy8gQ29ycmVjdGlvbiBieSBBcnJvdyBpZiBwb3B1cCBpcyBvdXRzaWRlIHRoZSBsZWZ0IG1hcmdpblxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgLT0gdmFsdWUgKiAtMSArIDU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9IG51bGw7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdG9wXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldFBvc2l0aW9uVG9wKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3NpdGlvblRvcChcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYsXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnBvc1BvcHVwVG9wID0gdmFsdWU7XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLkdldFBpY2tlclBvc2l0aW9uKCkpIHtcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmxlZnQ6XG4gICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5yaWdodDpcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93VG9wID0gdGhpcy5nZXRQaWNrZXJIZWlnaHQoKSAvIDIgLSA2LjU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dUb3AgPSBudWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBtZXRob2QgaWYgY29udGVudCBoYXMgY2hhbmdlZCBhbmQgcHJvcG9ydGlvbnMgbmVlZCB0byBiZSByZXNldCBpbiB0aGUgVUkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBvbkNvbnRlbnRDaGFuZ2UgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgaXMgbm90IHZpc2libGVcbiAgICAgICAgaWYgKCF0aGlzLl9zaG93c2VsZWN0b3IpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nZXRQb3NpdGlvbkxlZnQoKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0UG9zaXRpb25Ub3AoKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgc2V0RGF0ZVRpbWVGb3JtYXQoKTogdm9pZCB7XG4gICAgICAgIC8vIEhBQ0s6IEFkZCBhZGRpdGlvbiBwcm9wZXJ0eSB0byBGb3JtQ29udHJvbC4gQ2FuIGJlIGZpeGVkIGlmIHNvbHV0aW9uIGZvciB0aWNrZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE5Njg2XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgKHRoaXMubmdDb250cm9sIGFzIHVua25vd24gYXMgSURhdGVUaW1lQ29udHJvbCkuZGF0ZXRpbWVmb3JtYXRzdHJpbmcgPSB0aGlzLkdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xufVxuIl19
|
|
93
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMTB0bmptdjRrYSIsImFjdHVhbENvdmVyYWdlIiwiVG9vbHRpcFBvc2l0aW9uIiwiUG9wVXBIZWxwZXIiLCJWYWxpZGF0aW9uIiwiQ3JlYXRlVmFsaWRhdGlvbkVycm9yIiwiU2FjQmFzZU1vZGVsQ29udHJvbCIsIkRpcmVjdGl2ZSIsIklucHV0IiwiVmlld0NoaWxkIiwiSU1hc2tEaXJlY3RpdmUiLCJtb21lbnRfIiwiU2FjQmFzZURhdGVUaW1lQ29udHJvbCIsImNvbnN0cnVjdG9yIiwiZm9ybWxheW91dCIsImluamVjdG9yIiwiZWxlbWVudFJlZiIsImNkUmVmIiwiZiIsInMiLCJwb3B1cEhlbHBlciIsIl92YWx1ZUFzU3RyaW5nIiwiX3Nob3dzZWxlY3RvciIsImlzcmVxdWlyZWQiLCJtb21lbnQiLCJwaWNrZXJQb3NpdGlvbiIsInBsYWNlaG9sZGVyIiwicG9zQXJyb3dMZWZ0IiwicG9zQXJyb3dUb3AiLCJwb3NQb3B1cExlZnQiLCJwb3NQb3B1cFRvcCIsInBvc2l0aW9uIiwidmFsaWRhdGlvbm1lc3NhZ2VkYXRldGltZWZvcm1hdCIsInZhbGlkYXRpb25LZXlTZXJ2aWNlIiwiVmFsaWRhdGlvbkVycm9yRGF0ZXRpbWVGb3JtYXQiLCJ2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeSIsIlZhbGlkYXRpb25FcnJvclN1bW1hcnlEYXRldGltZUZvcm1hdCIsInZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQiLCJWYWxpZGF0aW9uRXJyb3JSZXF1aXJlZCIsInZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWRzdW1tYXJ5IiwiVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkIiwib25Db250ZW50Q2hhbmdlIiwiYiIsInNldFRpbWVvdXQiLCJnZXRQb3NpdGlvbkxlZnQiLCJnZXRQb3NpdGlvblRvcCIsInBpY2tlciIsInVuZGVmaW5lZCIsImRvY3VtZW50IiwiYm9keSIsImFwcGVuZENoaWxkIiwibmF0aXZlRWxlbWVudCIsInBpY2tlcmNvbnRhaW5lciIsImRldGVjdENoYW5nZXMiLCJ0b29sdG9wIiwidmFsdWVzdHJpbmciLCJ2YWx1ZSIsImRhdGUiLCJ1dGMiLCJsb2NhbCIsImZvcm1hdCIsIkdldERhdGVUaW1lRm9ybWF0U3RyaW5nIiwidiIsIk1vZGlmeVBhcnNlZERhdGVUaW1lVmFsdWUiLCJpc1ZhbGlkIiwidG9EYXRlIiwiaU1hc2siLCJtYXNrUmVmIiwidXBkYXRlQ29udHJvbCIsIkdldFBpY2tlclBvc2l0aW9uIiwiZ2V0RGlzcGxheVBvc2l0aW9uIiwicGlja2VyYnV0dG9uIiwiZ2V0QXJyb3dXaWR0aCIsImdldEFycm93SGVpZ2h0IiwiZ2V0RGF0ZSIsInRpbWVzdGFtcCIsIkRhdGUiLCJ5ZWFyIiwiZ2V0VVRDRnVsbFllYXIiLCJtb250aCIsImdldFVUQ01vbnRoIiwiZGF5IiwiZ2V0VVRDRGF0ZSIsImhvdXJzIiwiZ2V0VVRDSG91cnMiLCJtaW51dGVzIiwiZ2V0VVRDTWludXRlcyIsInNlY29uZHMiLCJnZXRVVENTZWNvbmRzIiwiVVRDIiwiZ2V0UGlja2VySGVpZ2h0IiwiZ2V0UG9wdXBIZWlnaHQiLCJnZXRQaWNrZXJXaWR0aCIsImdldFBvcHVwV2lkdGgiLCJuZ09uRGVzdHJveSIsInJlbW92ZUNoaWxkIiwid2luZG93IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm5nT25Jbml0Iiwic2V0RGF0ZVRpbWVGb3JtYXQiLCJhZGRFdmVudExpc3RlbmVyIiwic2V0VmFsdWVTdHJpbmciLCJ2YWxpZGF0ZURhdGEiLCJjIiwiZXJyb3IiLCJpbmRleE9mIiwiaXNWYWxpZERhdGUiLCJyZXF1aXJlZCIsIndyaXRlVmFsdWUiLCJfdmFsdWUiLCJwaWNrZXJhcnJvdyIsIm9mZnNldEhlaWdodCIsIm9mZnNldFdpZHRoIiwidG9wIiwiYm90dG9tIiwidG9wZW5kIiwiYm90dG9tZW5kIiwiZ2V0Q29udGFpbmVyV2lkdGgiLCJsZWZ0IiwicmlnaHQiLCJuZ0NvbnRyb2wiLCJkYXRldGltZWZvcm1hdHN0cmluZyIsImRlcHMiLCJ0b2tlbiIsImkxIiwiU2FjRm9ybUxheW91dENvbW1vbiIsImkwIiwiSW5qZWN0b3IiLCJFbGVtZW50UmVmIiwiQ2hhbmdlRGV0ZWN0b3JSZWYiLCJ0YXJnZXQiLCLJtcm1RmFjdG9yeVRhcmdldCIsImlucHV0cyIsInZpZXdRdWVyaWVzIiwicHJvcGVydHlOYW1lIiwiZmlyc3QiLCJwcmVkaWNhdGUiLCJkZXNjZW5kYW50cyIsInN0YXRpYyIsInVzZXNJbmhlcml0YW5jZSIsIm5nSW1wb3J0IiwiZGVjb3JhdG9ycyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNlZGF0ZXRpbWVjb250cm9sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Zvcm1MYXlvdXRDb21tb24gfSBmcm9tICcuLi9jb250cm9scy9sYXlvdXQvZm9ybWxheW91dCc7XG5pbXBvcnQgeyBJRGF0ZVRpbWVDb250cm9sIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pZGF0ZXRpbWVjb250cm9sJztcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uL3V0aWxpdGllcy9lbnVtcyc7XG5pbXBvcnQgeyBQb3BVcEhlbHBlciB9IGZyb20gJy4uL3V0aWxpdGllcy9wb3B1cGhlbHBlcic7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBDcmVhdGVWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb25lcnJvcmNyZWF0b3InO1xuaW1wb3J0IHsgU2FjQmFzZU1vZGVsQ29udHJvbCB9IGZyb20gJy4vYmFzZW1vZGVsY29udHJvbCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3RvciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElNYXNrRGlyZWN0aXZlIH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XG5cbi8qKlxuICogQmFzZSBLbGFzc2UgZsO8ciBEYXRlL1RpbWUgQ29udHJvbHNcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjQmFzZURhdGVUaW1lQ29udHJvbCBleHRlbmRzIFNhY0Jhc2VNb2RlbENvbnRyb2w8RGF0ZT4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBIZWxwZXIgY2xhc3MgdG8gZGlzcGxheSB0b29sdGlwIG9uIGNvcnJlY3QgcG9zaXRpb25cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvcHVwSGVscGVyOiBQb3BVcEhlbHBlciA9IG5ldyBQb3BVcEhlbHBlcigpO1xuXG4gICAgLyoqXG4gICAgICogZGFzIHByb3BlcnR5IGVudGhpZWx0IGRhcyBWYWx1ZSBhbHMgc3RyaW5nLiBEZWZhdWx0IGlzdCAnJ1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBfdmFsdWVBc1N0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogQ29udGFpbmVycyBmb3IgdGhlIGRhdGV0aW1lIHBpY2tlclxuICAgICAqL1xuICAgIHByb3RlY3RlZCBwaWNrZXJjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZm9yIGVudW0gaW4gQW5ndWxhciBIVE1MIHRlbXBsYXRlXG4gICAgICovXG4gICAgcHVibGljIFRvb2x0aXBQb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbjtcblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBvYiBkZXIgRGF0ZSBTZWxlY3RvciBhbmdlemVpZ3Qgd2lyZFxuICAgICAqL1xuICAgIHB1YmxpYyBfc2hvd3NlbGVjdG9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2UgdG8gaW1hc2sgZGlyZWN0aXZlIGluIGFueSBkYXRldGltZSBjb250cm9sc1xuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoSU1hc2tEaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBpTWFzazogSU1hc2tEaXJlY3RpdmU8YW55PjtcblxuICAgIC8qKlxuICAgICAqIERlZmluaWVydCBkYXMgQ29udHJvbCBhbHMgUmVxdWlyZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaXNyZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogTW9tZW50IEpTIEluc3RhbmNlXG4gICAgICovXG4gICAgcHVibGljIG1vbWVudCA9IG1vbWVudF9bJ2RlZmF1bHQnXTtcblxuICAgIC8qKlxuICAgICAqIEFycm93IEl0ZW0gb2YgUGlja2VyIEVsZW1lbnQuIFJlcXVpcmVkIHRvIHNldCB0aGUgcG9zaXRpb24gb2YgYXJyb3cgY29ycmVjdGx5XG4gICAgICovXG4gICAgcHVibGljIHBpY2tlclBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uO1xuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcmFycm93JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIHBpY2tlcmFycm93OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBjb250YWluZXIgZm9yIGNvbnRlbnQgKGUuZy4gaWNvbikgb24gd2hpY2ggdGhlIHRvb2x0aXAgaXMgZGlzcGxheWVkLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcmJ1dHRvbicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHVibGljIHBpY2tlcmJ1dHRvbjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBUZXh0Qm94IFBsYWNlaG9sZGVyXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhcnJvdyBhdCB0aGUgbGVmdFxuICAgICAqL1xuICAgIHB1YmxpYyBwb3NBcnJvd0xlZnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhcnJvdyBhdCB0aGUgdG9wXG4gICAgICovXG4gICAgcHVibGljIHBvc0Fycm93VG9wOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBwaWNrZXIgYXQgdGhlIGxlZnRcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9zUG9wdXBMZWZ0OiBudW1iZXIgPSAwO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhdCB0aGUgdG9wXG4gICAgICovXG4gICAgcHVibGljIHBvc1BvcHVwVG9wOiBudW1iZXIgPSAwO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIGRhdGV0aW1lIHBpY2tlci4gVmFsdWVzOiBsZWZ0fHRvcHxyaWdodHxib3R0b218YXV0b1xuICAgICAqXG4gICAgICogVmFsdWUgJ2F1dG8nIGNhbiBiZSBjb21iaW5lZCB3aXRoIGFub3RoZXIgdmFsdWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcG9zaXRpb246IHN0cmluZyA9ICdib3R0b21lbmR8dG9wZW5kJztcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBEYXRlVGltZUZvcm1hdCBiZWkgQ29udHJvbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0OiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvckRhdGV0aW1lRm9ybWF0O1xuXG4gICAgLyoqXG4gICAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIERhdGVUaW1lRm9ybWF0IGluIFZhbGlkYXRpb24gU3VtbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeTogc3RyaW5nID1cbiAgICAgICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5RGF0ZXRpbWVGb3JtYXQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgYmVpIENvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID0gdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JSZXF1aXJlZDtcblxuICAgIC8qKlxuICAgICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZHN1bW1hcnk6IHN0cmluZyA9IHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkO1xuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXG4gICAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcbiAgICAgKiBAcGFyYW0gZWxlbWVudFJlZiByZWZlcmVuY2UgdG8gaHRtbCBlbGVtZW50XG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGZvcm1sYXlvdXQsIGluamVjdG9yKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLy8gI3JlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xuXG4gICAgLyoqXG4gICAgICogU2V0dGVyIGZvciB0aGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciB0aGUgdG9vbHRpcC4gSXMgcmVxdWlyZWQgYXMgdGhlIHRvb2x0aXAgY2FuIGJlIGhpZGRlbiB2aWEgbmdJZi5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdwaWNrZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgc2V0IHBpY2tlcihwaWNrZXI6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgaWYgKHBpY2tlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBpY2tlci5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucGlja2VyY29udGFpbmVyID0gcGlja2VyO1xuICAgICAgICB0aGlzLm9uQ29udGVudENoYW5nZSgpO1xuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRvb2x0b3AoKTogRWxlbWVudFJlZiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlcmNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXR0ZXIgZsO8ciB2YWx1ZXN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmFsdWVzdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZUFzU3RyaW5nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMubW9tZW50LnV0Yyh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRlLmxvY2FsKCkuZm9ybWF0KHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEYXMgSW5wdXQgYmVrb21tdCBkYXMgdmFsdWUgdm9uIHR5cCBzdHJpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWVzdHJpbmcodjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlQXNTdHJpbmcgPSB2O1xuICAgICAgICBsZXQgZGF0ZTogbW9tZW50Xy5Nb21lbnQgPSB0aGlzLm1vbWVudCh2LCBbdGhpcy5HZXREYXRlVGltZUZvcm1hdFN0cmluZygpXSwgdHJ1ZSk7XG5cbiAgICAgICAgZGF0ZSA9IHRoaXMuTW9kaWZ5UGFyc2VkRGF0ZVRpbWVWYWx1ZShkYXRlKS51dGMoKTtcblxuICAgICAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBkYXRlLnRvRGF0ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB1cGRhdGUgaW1ha3MgcmVmZXJlbmNlXG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLmlNYXNrLm1hc2tSZWYudXBkYXRlQ29udHJvbCgpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIERpZSBtZXRob2RlIHJldHVybnMgZGF0ZVRpbWUgaW4gc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IEdldERhdGVUaW1lRm9ybWF0U3RyaW5nKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIEdldFBpY2tlclBvc2l0aW9uKCk6IFRvb2x0aXBQb3NpdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldERpc3BsYXlQb3NpdGlvbihcbiAgICAgICAgICAgIHRoaXMucGlja2VyYnV0dG9uLFxuICAgICAgICAgICAgdGhpcy5waWNrZXJjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLmdldEFycm93V2lkdGgoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dIZWlnaHQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpZSBtZXRob2RlIG1vZGlmaXppZXJ0IGRhcyBlaW5nZWdlYmVuZSBWYWx1ZSB2b24gdHlwIE1vbWVudFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBNb2RpZnlQYXJzZWREYXRlVGltZVZhbHVlKHY6IG1vbWVudF8uTW9tZW50KTogbW9tZW50Xy5Nb21lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBKU09OIERhdGUgU3RyaW5nIGluIGVpbiBVVEMgRGF0ZVRpbWUgT2JqZWN0IGtvbnZlcnRpZXJlbiwgd2VsY2hlcyB2b20gQ29udHJvbCB2ZXJ3ZW5kZXRlIHdlcmRlbiBrYW5uXG4gICAgICovXG4gICAgcHVibGljIGdldERhdGUodGltZXN0YW1wKTogbW9tZW50Lk1vbWVudCB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xuICAgICAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRVVENGdWxsWWVhcigpO1xuICAgICAgICBjb25zdCBtb250aCA9IGRhdGUuZ2V0VVRDTW9udGgoKTtcbiAgICAgICAgY29uc3QgZGF5ID0gZGF0ZS5nZXRVVENEYXRlKCk7XG4gICAgICAgIGNvbnN0IGhvdXJzID0gZGF0ZS5nZXRVVENIb3VycygpO1xuICAgICAgICBjb25zdCBtaW51dGVzID0gZGF0ZS5nZXRVVENNaW51dGVzKCk7XG4gICAgICAgIGNvbnN0IHNlY29uZHMgPSBkYXRlLmdldFVUQ1NlY29uZHMoKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5tb21lbnQoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgb2YgdGhlIHRvb2x0aXBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGlja2VySGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwSGVpZ2h0KHRoaXMucGlja2VyY29udGFpbmVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiB0aGUgcGlja2VyXG4gICAgICovXG4gICAgcHVibGljIGdldFBpY2tlcldpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwV2lkdGgodGhpcy5waWNrZXJjb250YWluZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgLy8gUmVtb3ZlIFBpY2tlciBpZiBpcyB2aXNpYmxlXG4gICAgICAgIGlmICh0aGlzLl9zaG93c2VsZWN0b3IgJiYgdGhpcy5waWNrZXJjb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5waWNrZXJjb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVbnJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdCBFdmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5zZXREYXRlVGltZUZvcm1hdCgpO1xuXG4gICAgICAgIC8vIFJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0enQgZGFzIHZhbHVlIHZvbiB0eXAgc3RyaW5nIHp1IHByb3BlcnR5IHZhbHVlc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIHNldFZhbHVlU3RyaW5nKHY6IHN0cmluZykge1xuICAgICAgICB0aGlzLnZhbHVlc3RyaW5nID0gdjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0b3JcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgaWYgKHRoaXMudmFsdWVzdHJpbmcgIT09IG51bGwgJiYgdGhpcy52YWx1ZXN0cmluZy5pbmRleE9mKCdfJykgPj0gMCkge1xuICAgICAgICAgICAgZXJyb3IgPSBDcmVhdGVWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgICAgICAgJ2ludmFsaWR0eXBlJyxcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlZGF0ZXRpbWVmb3JtYXQsXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLmlzVmFsaWREYXRlKFxuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0LFxuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZWRhdGV0aW1lZm9ybWF0c3VtbWFyeVxuICAgICAgICApKGMpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzcmVxdWlyZWQpIHtcbiAgICAgICAgICAgIGVycm9yID0gVmFsaWRhdGlvbi5yZXF1aXJlZCh0aGlzLnZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQsIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZHN1bW1hcnkpKGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE92ZXJ3cml0ZSBXcml0ZVZhbHVlIHRvIFNldCBjb3JyZWN0IERhdGUgT2JqZWN0XG4gICAgICovXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IERhdGUgfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBSZXNldCBWYWx1ZSBTdHJpbmcsIGRhbWl0IGJlaW0gVXBkYXRlIGRlcyBNb2RlbHMgYXVjaCBkYXMgSW5wdXQgRmVsZCBnZWxlZXJ0IHdpcmQuXG4gICAgICAgICAgICB0aGlzLl92YWx1ZUFzU3RyaW5nID0gJyc7XG4gICAgICAgICAgICAvLyBTZXQgSW50ZXJuYWwgUHJvcGVydHlcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5nZXREYXRlKHZhbHVlKS50b0RhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodGhpcy5fdmFsdWUpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIHByb3RlY3RlZCBnZXRBcnJvd0hlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXJhcnJvdyA/IHRoaXMucGlja2VyYXJyb3cubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgOiAwO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRBcnJvd1dpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlcmFycm93ID8gdGhpcy5waWNrZXJhcnJvdy5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIDogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIGxpbmtzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldFBvc2l0aW9uTGVmdCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25MZWZ0KFxuICAgICAgICAgICAgdGhpcy5waWNrZXJidXR0b24sXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lcixcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZixcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpLFxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd0hlaWdodCgpLFxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gRW5zdXJlIHRoYXQgcG9wLXVwcyBuZXZlciBhcHBlYXIgb3V0c2lkZSB0aGUgdmlzaWJsZSBhcmVhIG9uIHRoZSBsZWZ0XG4gICAgICAgIGlmICh2YWx1ZSA8IDApIHtcbiAgICAgICAgICAgIHRoaXMucG9zUG9wdXBMZWZ0ID0gNTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucG9zUG9wdXBMZWZ0ID0gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKHRoaXMuR2V0UGlja2VyUG9zaXRpb24oKSkge1xuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24udG9wOlxuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uYm90dG9tOlxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID0gdGhpcy5nZXRQaWNrZXJXaWR0aCgpIC8gMiAtIC10aGlzLmdldEFycm93V2lkdGgoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnRvcGVuZDpcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLmJvdHRvbWVuZDpcbiAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UGlja2VyV2lkdGgoKSAtXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpIC8gMiAtXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9wdXBIZWxwZXIuZ2V0Q29udGFpbmVyV2lkdGgodGhpcy5waWNrZXJidXR0b24sIGZhbHNlKSAvIDI7XG5cbiAgICAgICAgICAgICAgICAvLyBDb3JyZWN0aW9uIGJ5IEFycm93IGlmIHBvcHVwIGlzIG91dHNpZGUgdGhlIGxlZnQgbWFyZ2luXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlIDwgMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCAtPSB2YWx1ZSAqIC0xICsgNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0b3BcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0UG9zaXRpb25Ub3AoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uVG9wKFxuICAgICAgICAgICAgdGhpcy5waWNrZXJidXR0b24sXG4gICAgICAgICAgICB0aGlzLnBpY2tlcmNvbnRhaW5lcixcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZixcbiAgICAgICAgICAgIHRoaXMuZ2V0QXJyb3dXaWR0aCgpLFxuICAgICAgICAgICAgdGhpcy5nZXRBcnJvd0hlaWdodCgpLFxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucG9zUG9wdXBUb3AgPSB2YWx1ZTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMuR2V0UGlja2VyUG9zaXRpb24oKSkge1xuICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24ubGVmdDpcbiAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLnJpZ2h0OlxuICAgICAgICAgICAgICAgIHRoaXMucG9zQXJyb3dUb3AgPSB0aGlzLmdldFBpY2tlckhlaWdodCgpIC8gMiAtIDYuNTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IG51bGw7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIG1ldGhvZCBpZiBjb250ZW50IGhhcyBjaGFuZ2VkIGFuZCBwcm9wb3J0aW9ucyBuZWVkIHRvIGJlIHJlc2V0IGluIHRoZSBVSS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9uQ29udGVudENoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBpcyBub3QgdmlzaWJsZVxuICAgICAgICBpZiAoIXRoaXMuX3Nob3dzZWxlY3Rvcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldFBvc2l0aW9uTGVmdCgpO1xuICAgICAgICAgICAgdGhpcy5nZXRQb3NpdGlvblRvcCgpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBzZXREYXRlVGltZUZvcm1hdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gSEFDSzogQWRkIGFkZGl0aW9uIHByb3BlcnR5IHRvIEZvcm1Db250cm9sLiBDYW4gYmUgZml4ZWQgaWYgc29sdXRpb24gZm9yIHRpY2tldDogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTk2ODZcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICAodGhpcy5uZ0NvbnRyb2wgYXMgdW5rbm93biBhcyBJRGF0ZVRpbWVDb250cm9sKS5kYXRldGltZWZvcm1hdHN0cmluZyA9IHRoaXMuR2V0RGF0ZVRpbWVGb3JtYXRTdHJpbmcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG4iXSwibWFwcGluZ3MiOiJrdG9DQWlJSTtBQUFBQSxjQUFBLFNBQUFBLENBQUEsU0FBQUMsY0FBQSxXQUFBQSxjQUFBLEVBQUFELGNBQUEsR0EvSEosT0FBU0UsZUFBZSxLQUFRLG9CQUFvQixDQUNwRCxPQUFTQyxXQUFXLEtBQVEsMEJBQTBCLENBQ3RELE9BQVNDLFVBQVUsS0FBUSxlQUFlLENBQzFDLE9BQVNDLHFCQUFxQixLQUFRLHNDQUFzQyxDQUM1RSxPQUFTQyxtQkFBbUIsS0FBUSxvQkFBb0IsQ0FDeEQsT0FBNEJDLFNBQVMsQ0FBd0JDLEtBQUssQ0FBcUJDLFNBQVMsS0FBUSxlQUFlLENBRXZILE9BQVNDLGNBQWMsS0FBUSxlQUFlLENBQzlDLE1BQU8sR0FBSyxDQUFBQyxPQUFPLEtBQU0sUUFBUSxDLGtGQUVqQzs7R0FJQSxNQUFNLE1BQWdCLENBQUFDLHNCQUF1QixRQUFRLENBQUFOLG1CQUF5QixDQStHMUU7QUFFQTtBQUVBOzs7OztPQU1BTyxZQUNJQyxVQUErQixDQUMvQkMsUUFBa0IsQ0FDUkMsVUFBc0IsQ0FDZkMsS0FBd0IsRUFBQWpCLGNBQUEsR0FBQWtCLENBQUEsTUFBQWxCLGNBQUEsR0FBQW1CLENBQUEsTUFFekMsS0FBSyxDQUFDTCxVQUFVLENBQUVDLFFBQVEsQ0FBQyxDQUFDZixjQUFBLEdBQUFtQixDQUFBLE1BSGxCLEtBQUFILFVBQVUsQ0FBVkEsVUFBVSxDQUFZaEIsY0FBQSxHQUFBbUIsQ0FBQSxNQUNmLEtBQUFGLEtBQUssQ0FBTEEsS0FBSyxDQTVIMUI7QUFFQTs7V0FBQWpCLGNBQUEsR0FBQW1CLENBQUEsTUFHaUIsS0FBQUMsV0FBVyxDQUFnQixHQUFJLENBQUFqQixXQUFXLEVBQUUsQ0FFN0Q7O1dBQUFILGNBQUEsR0FBQW1CLENBQUEsTUFHVSxLQUFBRSxjQUFjLENBQUcsRUFBRSxDQU83Qjs7V0FBQXJCLGNBQUEsR0FBQW1CLENBQUEsTUFHTyxLQUFBakIsZUFBZSxDQUFHQSxlQUFlLENBRXhDOztXQUFBRixjQUFBLEdBQUFtQixDQUFBLE1BR08sS0FBQUcsYUFBYSxDQUFZLEtBQUssQ0FRckM7O1dBQUF0QixjQUFBLEdBQUFtQixDQUFBLE1BR2dCLEtBQUFJLFVBQVUsQ0FBWSxLQUFLLENBRTNDOztXQUFBdkIsY0FBQSxHQUFBbUIsQ0FBQSxNQUdPLEtBQUFLLE1BQU0sQ0FBR2IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUVsQzs7V0FBQVgsY0FBQSxHQUFBbUIsQ0FBQSxNQUdPLEtBQUFNLGNBQWMsQ0FBR3ZCLGVBQWUsQ0FVdkM7O1dBQUFGLGNBQUEsR0FBQW1CLENBQUEsT0FHZ0IsS0FBQU8sV0FBVyxDQUFXLElBQUksQ0FFMUM7O1dBQUExQixjQUFBLEdBQUFtQixDQUFBLE9BR08sS0FBQVEsWUFBWSxDQUFrQixJQUFJLENBRXpDOztXQUFBM0IsY0FBQSxHQUFBbUIsQ0FBQSxPQUdPLEtBQUFTLFdBQVcsQ0FBa0IsSUFBSSxDQUV4Qzs7V0FBQTVCLGNBQUEsR0FBQW1CLENBQUEsT0FHTyxLQUFBVSxZQUFZLENBQVcsQ0FBQyxDQUUvQjs7V0FBQTdCLGNBQUEsR0FBQW1CLENBQUEsT0FHTyxLQUFBVyxXQUFXLENBQVcsQ0FBQyxDQUU5Qjs7OztXQUFBOUIsY0FBQSxHQUFBbUIsQ0FBQSxPQU1PLEtBQUFZLFFBQVEsQ0FBVyxrQkFBa0IsQ0FFNUM7O1dBQUEvQixjQUFBLEdBQUFtQixDQUFBLE9BR2dCLEtBQUFhLCtCQUErQixDQUFXLElBQUksQ0FBQ0Msb0JBQW9CLENBQUNDLDZCQUE2QixDQUVqSDs7V0FBQWxDLGNBQUEsR0FBQW1CLENBQUEsT0FHZ0IsS0FBQWdCLHNDQUFzQyxDQUNsRCxJQUFJLENBQUNGLG9CQUFvQixDQUFDRyxvQ0FBb0MsQ0FFbEU7O1dBQUFwQyxjQUFBLEdBQUFtQixDQUFBLE9BR2dCLEtBQUFrQix5QkFBeUIsQ0FBVyxJQUFJLENBQUNKLG9CQUFvQixDQUFDSyx1QkFBdUIsQ0FFckc7O1dBQUF0QyxjQUFBLEdBQUFtQixDQUFBLE9BR2dCLEtBQUFvQixnQ0FBZ0MsQ0FBVyxJQUFJLENBQUNOLG9CQUFvQixDQUFDTyw4QkFBOEIsQ0F1U25IO0FBRUE7QUFFQTs7V0FBQXhDLGNBQUEsR0FBQW1CLENBQUEsT0FHaUIsS0FBQXNCLGVBQWUsQ0FBRyxJQUFXLENBQUF6QyxjQUFBLEdBQUFrQixDQUFBLE1BQUFsQixjQUFBLEdBQUFtQixDQUFBLE9BQzFDO0FBQ0EsR0FBSSxDQUFDLElBQUksQ0FBQ0csYUFBYSxDQUFFLENBQUF0QixjQUFBLEdBQUEwQyxDQUFBLFNBQUExQyxjQUFBLEdBQUFtQixDQUFBLE9BQ3JCLE8sQ0FDSCxLQUFBbkIsY0FBQSxHQUFBMEMsQ0FBQSxVQUFBMUMsY0FBQSxHQUFBbUIsQ0FBQSxPQUVEd0IsVUFBVSxDQUFDLElBQUssQ0FBQTNDLGNBQUEsR0FBQWtCLENBQUEsTUFBQWxCLGNBQUEsR0FBQW1CLENBQUEsT0FDWixJQUFJLENBQUN5QixlQUFlLEVBQUUsQ0FBQzVDLGNBQUEsR0FBQW1CLENBQUEsT0FDdkIsSUFBSSxDQUFDMEIsY0FBYyxFQUFFLENBQ3pCLENBQUMsQ0FBQyxDQUNOLENBQUMsQ0FyU0QsQ0FFQTtBQUVBO0FBRUE7O09BR0EsR0FDVyxDQUFBQyxNQUFNQSxDQUFDQSxNQUFrQixFQUFBOUMsY0FBQSxHQUFBa0IsQ0FBQSxNQUFBbEIsY0FBQSxHQUFBbUIsQ0FBQSxPQUNoQyxHQUFJMkIsTUFBTSxHQUFLQyxTQUFTLENBQUUsQ0FBQS9DLGNBQUEsR0FBQTBDLENBQUEsU0FBQTFDLGNBQUEsR0FBQW1CLENBQUEsT0FDdEI2QixRQUFRLENBQUNDLElBQUksQ0FBQ0MsV0FBVyxDQUFDSixNQUFNLENBQUNLLGFBQWEsQ0FBQyxDLENBQ2xELEtBQUFuRCxjQUFBLEdBQUEwQyxDQUFBLFVBQUExQyxjQUFBLEdBQUFtQixDQUFBLE9BRUQsSUFBSSxDQUFDaUMsZUFBZSxDQUFHTixNQUFNLENBQUM5QyxjQUFBLEdBQUFtQixDQUFBLE9BQzlCLElBQUksQ0FBQ3NCLGVBQWUsRUFBRSxDQUFDekMsY0FBQSxHQUFBbUIsQ0FBQSxPQUN2QixJQUFJLENBQUNGLEtBQUssQ0FBQ29DLGFBQWEsRUFBRSxDQUM5QixDQUVBLEdBQVcsQ0FBQUMsT0FBT0EsQ0FBQSxFQUFBdEQsY0FBQSxHQUFBa0IsQ0FBQSxNQUFBbEIsY0FBQSxHQUFBbUIsQ0FBQSxPQUNkLE1BQU8sS0FBSSxDQUFDaUMsZUFBZSxDQUMvQixDQUVBOztPQUdBLEdBQVcsQ0FBQUcsV0FBV0EsQ0FBQSxFQUFBdkQsY0FBQSxHQUFBa0IsQ0FBQSxNQUFBbEIsY0FBQSxHQUFBbUIsQ0FBQSxPQUNsQixHQUFJLElBQUksQ0FBQ3FDLEtBQUssR0FBSyxJQUFJLENBQUUsQ0FBQXhELGNBQUEsR0FBQTBDLENBQUEsU0FBQTFDLGNBQUEsR0FBQW1CLENBQUEsT0FDckIsTUFBTyxLQUFJLENBQUNFLGNBQWMsQyxDQUM3QixJQUFNLENBQUFyQixjQUFBLEdBQUEwQyxDQUFBLFNBQ0gsS0FBTSxDQUFBZSxJQUFJLEVBQUF6RCxjQUFBLEdBQUFtQixDQUFBLE9BQUcsSUFBSSxDQUFDSyxNQUFNLENBQUNrQyxHQUFHLENBQUMsSUFBSSxDQUFDRixLQUFLLENBQUMsRUFBQ3hELGNBQUEsR0FBQW1CLENBQUEsT0FDekMsTUFBTyxDQUFBc0MsSUFBSSxDQUFDRSxLQUFLLEVBQUUsQ0FBQ0MsTUFBTSxDQUFDLElBQUksQ0FBQ0MsdUJBQXVCLEVBQUUsQ0FBQyxDLENBRWxFLENBRUE7O09BR0EsR0FDVyxDQUFBTixXQUFXQSxDQUFDTyxDQUFTLEVBQUE5RCxjQUFBLEdBQUFrQixDQUFBLE1BQUFsQixjQUFBLEdBQUFtQixDQUFBLE9BQzVCLElBQUksQ0FBQ0UsY0FBYyxDQUFHeUMsQ0FBQyxDQUN2QixHQUFJLENBQUFMLElBQUksRUFBQXpELGNBQUEsR0FBQW1CLENBQUEsT0FBbUIsSUFBSSxDQUFDSyxNQUFNLENBQUNzQyxDQUFDLENBQUUsQ0FBQyxJQUFJLENBQUNELHVCQUF1QixFQUFFLENBQUMsQ0FBRSxJQUFJLENBQUMsRUFBQzdELGNBQUEsR0FBQW1CLENBQUEsT0FFbEZzQyxJQUFJLENBQUcsSUFBSSxDQUFDTSx5QkFBeUIsQ0FBQ04sSUFBSSxDQUFDLENBQUNDLEdBQUcsRUFBRSxDQUFDMUQsY0FBQSxHQUFBbUIsQ0FBQSxPQUVsRCxHQUFJc0MsSUFBSSxDQUFDTyxPQUFPLEVBQUUsQ0FBRSxDQUFBaEUsY0FBQSxHQUFBMEMsQ0FBQSxTQUFBMUMsY0FBQSxHQUFBbUIsQ0FBQSxPQUNoQixJQUFJLENBQUNxQyxLQUFLLENBQUdDLElBQUksQ0FBQ1EsTUFBTSxFQUFFLEMsQ0FDN0IsSUFBTSxDQUFBakUsY0FBQSxHQUFBMEMsQ0FBQSxTQUFBMUMsY0FBQSxHQUFBbUIsQ0FBQSxPQUNILElBQUksQ0FBQ3FDLEtBQUssQ0FBRyxJQUFJLEMsQ0FHckI7QUFBQXhELGNBQUEsR0FBQW1CLENBQUEsT0FDQSxJQUFJLENBQUNGLEtBQUssQ0FBQ29DLGFBQWEsRUFBRSxDQUFDckQsY0FBQSxHQUFBbUIsQ0FBQSxPQUMzQixJQUFJLENBQUMrQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0MsYUFBYSxFQUFFLENBQ3RDLENBV0E7O09BR09DLGlCQUFpQkEsQ0FBQSxFQUFBckUsY0FBQSxHQUFBa0IsQ0FBQSxNQUFBbEIsY0FBQSxHQUFBbUIsQ0FBQSxPQUNwQixNQUFPLEtBQUksQ0FBQ0MsV0FBVyxDQUFDa0Qsa0JBQWtCLENBQ3RDLElBQUksQ0FBQ0MsWUFBWSxDQUNqQixJQUFJLENBQUNuQixlQUFlLENBQ3BCLElBQUksQ0FBQ29CLGFBQWEsRUFBRSxDQUNwQixJQUFJLENBQUNDLGNBQWMsRUFBRSxDQUNyQixJQUFJLENBQUMxQyxRQUFRLENBQ2IsS0FBSyxDQUNSLENBQ0wsQ0FPQTs7T0FHTzJDLE9BQU9BLENBQUNDLFNBQVMsRUFBQTNFLGNBQUEsR0FBQWtCLENBQUEsTUFDcEIsS0FBTSxDQUFBdUMsSUFBSSxFQUFBekQsY0FBQSxHQUFBbUIsQ0FBQSxPQUFHLEdBQUksQ0FBQXlELElBQUksQ0FBQ0QsU0FBUyxDQUFDLEVBQ2hDLEtBQU0sQ0FBQUUsSUFBSSxFQUFBN0UsY0FBQSxHQUFBbUIsQ0FBQSxPQUFHc0MsSUFBSSxDQUFDcUIsY0FBYyxFQUFFLEVBQ2xDLEtBQU0sQ0FBQUMsS0FBSyxFQUFBL0UsY0FBQSxHQUFBbUIsQ0FBQSxPQUFHc0MsSUFBSSxDQUFDdUIsV0FBVyxFQUFFLEVBQ2hDLEtBQU0sQ0FBQUMsR0FBRyxFQUFBakYsY0FBQSxHQUFBbUIsQ0FBQSxPQUFHc0MsSUFBSSxDQUFDeUIsVUFBVSxFQUFFLEVBQzdCLEtBQU0sQ0FBQUMsS0FBSyxFQUFBbkYsY0FBQSxHQUFBbUIsQ0FBQSxPQUFHc0MsSUFBSSxDQUFDMkIsV0FBVyxFQUFFLEVBQ2hDLEtBQU0sQ0FBQUMsT0FBTyxFQUFBckYsY0FBQSxHQUFBbUIsQ0FBQSxPQUFHc0MsSUFBSSxDQUFDNkIsYUFBYSxFQUFFLEVBQ3BDLEtBQU0sQ0FBQUMsT0FBTyxFQUFBdkYsY0FBQSxHQUFBbUIsQ0FBQSxPQUFHc0MsSUFBSSxDQUFDK0IsYUFBYSxFQUFFLEVBQUN4RixjQUFBLEdBQUFtQixDQUFBLE9BRXJDLE1BQU8sS0FBSSxDQUFDSyxNQUFNLENBQUNvRCxJQUFJLENBQUNhLEdBQUcsQ0FBQ1osSUFBSSxDQUFFRSxLQUFLLENBQUVFLEdBQUcsQ0FBRUUsS0FBSyxDQUFFRSxPQUFPLENBQUVFLE9BQU8sQ0FBQyxDQUFDLENBQzNFLENBRUE7O09BR09HLGVBQWVBLENBQUEsRUFBQTFGLGNBQUEsR0FBQWtCLENBQUEsTUFBQWxCLGNBQUEsR0FBQW1CLENBQUEsT0FDbEIsTUFBTyxLQUFJLENBQUNDLFdBQVcsQ0FBQ3VFLGNBQWMsQ0FBQyxJQUFJLENBQUN2QyxlQUFlLENBQUMsQ0FDaEUsQ0FFQTs7T0FHT3dDLGNBQWNBLENBQUEsRUFBQTVGLGNBQUEsR0FBQWtCLENBQUEsT0FBQWxCLGNBQUEsR0FBQW1CLENBQUEsT0FDakIsTUFBTyxLQUFJLENBQUNDLFdBQVcsQ0FBQ3lFLGFBQWEsQ0FBQyxJQUFJLENBQUN6QyxlQUFlLENBQUMsQ0FDL0QsQ0FFTzBDLFdBQVdBLENBQUEsRUFBQTlGLGNBQUEsR0FBQWtCLENBQUEsT0FBQWxCLGNBQUEsR0FBQW1CLENBQUEsT0FDZDtBQUNBLEdBQUksQ0FBQW5CLGNBQUEsR0FBQTBDLENBQUEsYUFBSSxDQUFDcEIsYUFBYSxJQUFBdEIsY0FBQSxHQUFBMEMsQ0FBQSxTQUFJLElBQUksQ0FBQ1UsZUFBZSxFQUFFRCxhQUFhLEVBQUUsQ0FBQW5ELGNBQUEsR0FBQTBDLENBQUEsU0FBQTFDLGNBQUEsR0FBQW1CLENBQUEsT0FDM0Q2QixRQUFRLENBQUNDLElBQUksQ0FBQzhDLFdBQVcsQ0FBQyxJQUFJLENBQUMzQyxlQUFlLENBQUNELGFBQWEsQ0FBQyxDLENBQ2hFLEtBQUFuRCxjQUFBLEdBQUEwQyxDQUFBLFVBRUQ7QUFBQTFDLGNBQUEsR0FBQW1CLENBQUEsT0FDQTZFLE1BQU0sQ0FBQ0MsbUJBQW1CLENBQUMsUUFBUSxDQUFFLElBQUksQ0FBQ3hELGVBQWUsQ0FBRSxJQUFJLENBQUMsQ0FBQ3pDLGNBQUEsR0FBQW1CLENBQUEsT0FDakU2RSxNQUFNLENBQUNDLG1CQUFtQixDQUFDLFFBQVEsQ0FBRSxJQUFJLENBQUN4RCxlQUFlLENBQUUsSUFBSSxDQUFDLENBQ3BFLENBRUE7O09BR095RCxRQUFRQSxDQUFBLEVBQUFsRyxjQUFBLEdBQUFrQixDQUFBLE9BQUFsQixjQUFBLEdBQUFtQixDQUFBLE9BQ1gsS0FBSyxDQUFDK0UsUUFBUSxFQUFFLENBQUNsRyxjQUFBLEdBQUFtQixDQUFBLE9BQ2pCLElBQUksQ0FBQ2dGLGlCQUFpQixFQUFFLENBRXhCO0FBQUFuRyxjQUFBLEdBQUFtQixDQUFBLE9BQ0E2RSxNQUFNLENBQUNJLGdCQUFnQixDQUFDLFFBQVEsQ0FBRSxJQUFJLENBQUMzRCxlQUFlLENBQUUsSUFBSSxDQUFDLENBQUN6QyxjQUFBLEdBQUFtQixDQUFBLE9BQzlENkUsTUFBTSxDQUFDSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUUsSUFBSSxDQUFDM0QsZUFBZSxDQUFFLElBQUksQ0FBQyxDQUNqRSxDQUVBOztPQUdPNEQsY0FBY0EsQ0FBQ3ZDLENBQVMsRUFBQTlELGNBQUEsR0FBQWtCLENBQUEsT0FBQWxCLGNBQUEsR0FBQW1CLENBQUEsT0FDM0IsSUFBSSxDQUFDb0MsV0FBVyxDQUFHTyxDQUFDLENBQ3hCLENBRUE7O09BR093QyxZQUFZQSxDQUFDQyxDQUFrQixFQUFBdkcsY0FBQSxHQUFBa0IsQ0FBQSxPQUNsQyxHQUFJLENBQUFzRixLQUFLLEVBQUF4RyxjQUFBLEdBQUFtQixDQUFBLE9BQTRCLElBQUksRUFBQ25CLGNBQUEsR0FBQW1CLENBQUEsT0FFMUMsR0FBSSxDQUFBbkIsY0FBQSxHQUFBMEMsQ0FBQSxhQUFJLENBQUNhLFdBQVcsR0FBSyxJQUFJLElBQUF2RCxjQUFBLEdBQUEwQyxDQUFBLFNBQUksSUFBSSxDQUFDYSxXQUFXLENBQUNrRCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUksQ0FBQyxFQUFFLENBQUF6RyxjQUFBLEdBQUEwQyxDQUFBLFNBQUExQyxjQUFBLEdBQUFtQixDQUFBLE9BQ2pFcUYsS0FBSyxDQUFHbkcscUJBQXFCLENBQ3pCLGFBQWEsQ0FDYixJQUFJLENBQUMyQiwrQkFBK0IsQ0FDcEMsSUFBSSxDQUFDRyxzQ0FBc0MsQ0FDOUMsQ0FBQ25DLGNBQUEsR0FBQW1CLENBQUEsT0FFRixHQUFJcUYsS0FBSyxDQUFFLENBQUF4RyxjQUFBLEdBQUEwQyxDQUFBLFNBQUExQyxjQUFBLEdBQUFtQixDQUFBLE9BQ1AsTUFBTyxDQUFBcUYsS0FBSyxDLENBQ2YsS0FBQXhHLGNBQUEsR0FBQTBDLENBQUEsVSxDQUNKLEtBQUExQyxjQUFBLEdBQUEwQyxDQUFBLFVBQUExQyxjQUFBLEdBQUFtQixDQUFBLE9BRURxRixLQUFLLENBQUdwRyxVQUFVLENBQUNzRyxXQUFXLENBQzFCLElBQUksQ0FBQzFFLCtCQUErQixDQUNwQyxJQUFJLENBQUNHLHNDQUFzQyxDQUM5QyxDQUFDb0UsQ0FBQyxDQUFDLENBQUN2RyxjQUFBLEdBQUFtQixDQUFBLE9BRUwsR0FBSSxJQUFJLENBQUNJLFVBQVUsQ0FBRSxDQUFBdkIsY0FBQSxHQUFBMEMsQ0FBQSxTQUFBMUMsY0FBQSxHQUFBbUIsQ0FBQSxPQUNqQnFGLEtBQUssQ0FBR3BHLFVBQVUsQ0FBQ3VHLFFBQVEsQ0FBQyxJQUFJLENBQUN0RSx5QkFBeUIsQ0FBRSxJQUFJLENBQUNFLGdDQUFnQyxDQUFDLENBQUNnRSxDQUFDLENBQUMsQyxDQUN4RyxLQUFBdkcsY0FBQSxHQUFBMEMsQ0FBQSxVQUFBMUMsY0FBQSxHQUFBbUIsQ0FBQSxPQUVELE1BQU8sQ0FBQXFGLEtBQUssQ0FDaEIsQ0FFQTs7T0FHT0ksVUFBVUEsQ0FBQ3BELEtBQW9CLEVBQUF4RCxjQUFBLEdBQUFrQixDQUFBLE9BQUFsQixjQUFBLEdBQUFtQixDQUFBLE9BQ2xDLEdBQUksQ0FBQW5CLGNBQUEsR0FBQTBDLENBQUEsVUFBQWMsS0FBSyxHQUFLLEVBQUUsSUFBQXhELGNBQUEsR0FBQTBDLENBQUEsVUFBSWMsS0FBSyxHQUFLLElBQUksSUFBQXhELGNBQUEsR0FBQTBDLENBQUEsVUFBSWMsS0FBSyxHQUFLVCxTQUFTLEVBQUUsQ0FBQS9DLGNBQUEsR0FBQTBDLENBQUEsVUFBQTFDLGNBQUEsR0FBQW1CLENBQUEsT0FDdkQ7QUFDQSxJQUFJLENBQUNFLGNBQWMsQ0FBRyxFQUFFLENBQ3hCO0FBQUFyQixjQUFBLEdBQUFtQixDQUFBLE9BQ0EsSUFBSSxDQUFDMEYsTUFBTSxDQUFHLElBQUksQyxDQUNyQixJQUFNLENBQUE3RyxjQUFBLEdBQUEwQyxDQUFBLFVBQUExQyxjQUFBLEdBQUFtQixDQUFBLE9BQ0gsSUFBSSxDQUFDMEYsTUFBTSxDQUFHLElBQUksQ0FBQ25DLE9BQU8sQ0FBQ2xCLEtBQUssQ0FBQyxDQUFDUyxNQUFNLEVBQUUsQyxDQUM3Q2pFLGNBQUEsR0FBQW1CLENBQUEsT0FFRCxLQUFLLENBQUN5RixVQUFVLENBQUMsSUFBSSxDQUFDQyxNQUFNLENBQUMsQ0FDakMsQ0FFQTtBQUVBO0FBRVVwQyxjQUFjQSxDQUFBLEVBQUF6RSxjQUFBLEdBQUFrQixDQUFBLE9BQUFsQixjQUFBLEdBQUFtQixDQUFBLE9BQ3BCLE1BQU8sS0FBSSxDQUFDMkYsV0FBVyxFQUFBOUcsY0FBQSxHQUFBMEMsQ0FBQSxVQUFHLElBQUksQ0FBQ29FLFdBQVcsQ0FBQzNELGFBQWEsQ0FBQzRELFlBQVksR0FBQS9HLGNBQUEsR0FBQTBDLENBQUEsVUFBRyxDQUFDLEVBQzdFLENBRVU4QixhQUFhQSxDQUFBLEVBQUF4RSxjQUFBLEdBQUFrQixDQUFBLE9BQUFsQixjQUFBLEdBQUFtQixDQUFBLE9BQ25CLE1BQU8sS0FBSSxDQUFDMkYsV0FBVyxFQUFBOUcsY0FBQSxHQUFBMEMsQ0FBQSxVQUFHLElBQUksQ0FBQ29FLFdBQVcsQ0FBQzNELGFBQWEsQ0FBQzZELFdBQVcsR0FBQWhILGNBQUEsR0FBQTBDLENBQUEsVUFBRyxDQUFDLEVBQzVFLENBRUE7O09BR1VFLGVBQWVBLENBQUEsRUFBQTVDLGNBQUEsR0FBQWtCLENBQUEsT0FDckIsS0FBTSxDQUFBc0MsS0FBSyxFQUFBeEQsY0FBQSxHQUFBbUIsQ0FBQSxPQUFHLElBQUksQ0FBQ0MsV0FBVyxDQUFDd0IsZUFBZSxDQUMxQyxJQUFJLENBQUMyQixZQUFZLENBQ2pCLElBQUksQ0FBQ25CLGVBQWUsQ0FDcEIsSUFBSSxDQUFDcEMsVUFBVSxDQUNmLElBQUksQ0FBQ3dELGFBQWEsRUFBRSxDQUNwQixJQUFJLENBQUNDLGNBQWMsRUFBRSxDQUNyQixJQUFJLENBQUMxQyxRQUFRLENBQ2IsS0FBSyxDQUNSLEVBRUQ7QUFBQS9CLGNBQUEsR0FBQW1CLENBQUEsT0FDQSxHQUFJcUMsS0FBSyxDQUFHLENBQUMsQ0FBRSxDQUFBeEQsY0FBQSxHQUFBMEMsQ0FBQSxVQUFBMUMsY0FBQSxHQUFBbUIsQ0FBQSxPQUNYLElBQUksQ0FBQ1UsWUFBWSxDQUFHLENBQUMsQyxDQUN4QixJQUFNLENBQUE3QixjQUFBLEdBQUEwQyxDQUFBLFVBQUExQyxjQUFBLEdBQUFtQixDQUFBLE9BQ0gsSUFBSSxDQUFDVSxZQUFZLENBQUcyQixLQUFLLEMsQ0FDNUJ4RCxjQUFBLEdBQUFtQixDQUFBLE9BRUQsT0FBUSxJQUFJLENBQUNrRCxpQkFBaUIsRUFBRSxFQUM1QixJQUFLLENBQUFuRSxlQUFlLENBQUMrRyxHQUFHLENBQUFqSCxjQUFBLEdBQUEwQyxDQUFBLFVBQ3hCLElBQUssQ0FBQXhDLGVBQWUsQ0FBQ2dILE1BQU0sQ0FBQWxILGNBQUEsR0FBQTBDLENBQUEsVUFBQTFDLGNBQUEsR0FBQW1CLENBQUEsT0FDdkIsSUFBSSxDQUFDUSxZQUFZLENBQUcsSUFBSSxDQUFDaUUsY0FBYyxFQUFFLENBQUcsQ0FBQyxDQUFHLEVBQUMsSUFBSSxDQUFDcEIsYUFBYSxFQUFFLENBQUN4RSxjQUFBLEdBQUFtQixDQUFBLE9BQ3RFLE1BQ0osSUFBSyxDQUFBakIsZUFBZSxDQUFDaUgsTUFBTSxDQUFBbkgsY0FBQSxHQUFBMEMsQ0FBQSxVQUMzQixJQUFLLENBQUF4QyxlQUFlLENBQUNrSCxTQUFTLENBQUFwSCxjQUFBLEdBQUEwQyxDQUFBLFVBQUExQyxjQUFBLEdBQUFtQixDQUFBLE9BQzFCLElBQUksQ0FBQ1EsWUFBWSxDQUNiLElBQUksQ0FBQ2lFLGNBQWMsRUFBRSxDQUNyQixJQUFJLENBQUNwQixhQUFhLEVBQUUsQ0FBRyxDQUFDLENBQ3hCLElBQUksQ0FBQ3BELFdBQVcsQ0FBQ2lHLGlCQUFpQixDQUFDLElBQUksQ0FBQzlDLFlBQVksQ0FBRSxLQUFLLENBQUMsQ0FBRyxDQUFDLENBRXBFO0FBQUF2RSxjQUFBLEdBQUFtQixDQUFBLE9BQ0EsR0FBSXFDLEtBQUssQ0FBRyxDQUFDLENBQUUsQ0FBQXhELGNBQUEsR0FBQTBDLENBQUEsVUFBQTFDLGNBQUEsR0FBQW1CLENBQUEsT0FDWCxJQUFJLENBQUNRLFlBQVksRUFBSTZCLEtBQUssQ0FBRyxDQUFDLENBQUMsQ0FBRyxDQUFDLEMsQ0FDdEMsS0FBQXhELGNBQUEsR0FBQTBDLENBQUEsV0FBQTFDLGNBQUEsR0FBQW1CLENBQUEsT0FDRCxNQUNKLFFBQUFuQixjQUFBLEdBQUEwQyxDQUFBLFVBQUExQyxjQUFBLEdBQUFtQixDQUFBLE9BQ0ksSUFBSSxDQUFDUSxZQUFZLENBQUcsSUFBSSxDQUFDM0IsY0FBQSxHQUFBbUIsQ0FBQSxPQUN6QixNLENBQ1BuQixjQUFBLEdBQUFtQixDQUFBLE9BRUQsTUFBTyxDQUFBcUMsS0FBSyxDQUNoQixDQUVBOztPQUdVWCxjQUFjQSxDQUFBLEVBQUE3QyxjQUFBLEdBQUFrQixDQUFBLE9BQ3BCLEtBQU0sQ0FBQXNDLEtBQUssRUFBQXhELGNBQUEsR0FBQW1CLENBQUEsT0FBRyxJQUFJLENBQUNDLFdBQVcsQ0FBQ3lCLGNBQWMsQ0FDekMsSUFBSSxDQUFDMEIsWUFBWSxDQUNqQixJQUFJLENBQUNuQixlQUFlLENBQ3BCLElBQUksQ0FBQ3BDLFVBQVUsQ0FDZixJQUFJLENBQUN3RCxhQUFhLEVBQUUsQ0FDcEIsSUFBSSxDQUFDQyxjQUFjLEVBQUUsQ0FDckIsSUFBSSxDQUFDMUMsUUFBUSxDQUNiLEtBQUssQ0FDUixFQUFDL0IsY0FBQSxHQUFBbUIsQ0FBQSxPQUNGLElBQUksQ0FBQ1csV0FBVyxDQUFHMEIsS0FBSyxDQUFDeEQsY0FBQSxHQUFBbUIsQ0FBQSxPQUV6QixPQUFRLElBQUksQ0FBQ2tELGlCQUFpQixFQUFFLEVBQzVCLElBQUssQ0FBQW5FLGVBQWUsQ0FBQ29ILElBQUksQ0FBQXRILGNBQUEsR0FBQTBDLENBQUEsVUFDekIsSUFBSyxDQUFBeEMsZUFBZSxDQUFDcUgsS0FBSyxDQUFBdkgsY0FBQSxHQUFBMEMsQ0FBQSxVQUFBMUMsY0FBQSxHQUFBbUIsQ0FBQSxPQUN0QixJQUFJLENBQUNTLFdBQVcsQ0FBRyxJQUFJLENBQUM4RCxlQUFlLEVBQUUsQ0FBRyxDQUFDLENBQUcsR0FBRyxDQUFDMUYsY0FBQSxHQUFBbUIsQ0FBQSxPQUNwRCxNQUNKLFFBQUFuQixjQUFBLEdBQUEwQyxDQUFBLFVBQUExQyxjQUFBLEdBQUFtQixDQUFBLE9BQ0ksSUFBSSxDQUFDUyxXQUFXLENBQUcsSUFBSSxDQUFDNUIsY0FBQSxHQUFBbUIsQ0FBQSxRQUN4QixNLENBQ1BuQixjQUFBLEdBQUFtQixDQUFBLFFBRUQsTUFBTyxDQUFBcUMsS0FBSyxDQUNoQixDQXFCUTJDLGlCQUFpQkEsQ0FBQSxFQUFBbkcsY0FBQSxHQUFBa0IsQ0FBQSxPQUFBbEIsY0FBQSxHQUFBbUIsQ0FBQSxRQUNyQjtBQUNBLEdBQUksSUFBSSxDQUFDcUcsU0FBUyxDQUFFLENBQUF4SCxjQUFBLEdBQUEwQyxDQUFBLFVBQUExQyxjQUFBLEdBQUFtQixDQUFBLFFBQ2YsSUFBSSxDQUFDcUcsU0FBeUMsQ0FBQ0Msb0JBQW9CLENBQUcsSUFBSSxDQUFDNUQsdUJBQXVCLEVBQUUsQyxDQUN4RyxLQUFBN0QsY0FBQSxHQUFBMEMsQ0FBQSxXQUNMLEMsb0lBNWFrQjlCLHNCQUFzQixDQUFBOEcsSUFBQSxHQUFBQyxLQUFBLENBQUFDLEVBQUEsQ0FBQUMsbUJBQUEsR0FBQUYsS0FBQSxDQUFBRyxFQUFBLENBQUFDLFFBQUEsR0FBQUosS0FBQSxDQUFBRyxFQUFBLENBQUFFLFVBQUEsR0FBQUwsS0FBQSxDQUFBRyxFQUFBLENBQUFHLGlCQUFBLEdBQUFDLE1BQUEsQ0FBQUosRUFBQSxDQUFBSyxlQUFBLENBQUE1SCxTQUFBLEdBQUFQLGNBQUEsR0FBQW1CLENBQUEsUSwrRkFBdEJQLHNCQUFzQixDQUFBd0gsTUFBQSxFQUFBN0csVUFBQSxjQUFBRyxXQUFBLGVBQUFLLFFBQUEsWUFBQUMsK0JBQUEsbUNBQUFHLHNDQUFBLDBDQUFBRSx5QkFBQSw2QkFBQUUsZ0NBQUEsb0NBQUFnQixXQUFBLGdCQUFBOEUsV0FBQSxHQUFBQyxZQUFBLFNBQUFDLEtBQUEsTUFBQUMsU0FBQSxDQStCN0I5SCxjQUFjLENBQUErSCxXQUFBLFFBQUFILFlBQUEsZUFBQUMsS0FBQSxNQUFBQyxTQUFBLGlCQUFBQyxXQUFBLFFBQUFILFlBQUEsZ0JBQUFDLEtBQUEsTUFBQUMsU0FBQSxrQkFBQUMsV0FBQSxNQUFBQyxNQUFBLFFBQUFKLFlBQUEsVUFBQUMsS0FBQSxNQUFBQyxTQUFBLFlBQUFDLFdBQUEsUUFBQUUsZUFBQSxNQUFBQyxRQUFBLENBQUFkLEVBQUEsR0FBQTlILGNBQUEsR0FBQW1CLENBQUEsUSxtRkEvQlBQLHNCQUFzQixDQUFBaUksVUFBQSxHLEtBRDNDdEksUyw0TUFpQ1UyRCxLQUFLLEcsS0FEWHpELFNBQVMsQyxNQUFDQyxjQUFjLENBQUUsQ0FBRWdJLE1BQU0sQ0FBRSxLQUFLLENBQUUsQyxHQU01Qm5ILFVBQVUsRyxLQUF6QmYsSyxHQVlNc0csV0FBVyxHLEtBRGpCckcsU0FBUyxDLE1BQUMsYUFBYSxDQUFFLENBQUVpSSxNQUFNLENBQUUsS0FBSyxDQUFFLEMsR0FPcENuRSxZQUFZLEcsS0FEbEI5RCxTQUFTLEMsTUFBQyxjQUFjLENBQUUsQ0FBRWlJLE1BQU0sQ0FBRSxJQUFJLENBQUUsQyxHQU0zQmhILFdBQVcsRyxLQUExQmxCLEssR0E0Qk11QixRQUFRLEcsS0FEZHZCLEssR0FNZXdCLCtCQUErQixHLEtBQTlDeEIsSyxHQUtlMkIsc0NBQXNDLEcsS0FBckQzQixLLEdBTWU2Qix5QkFBeUIsRyxLQUF4QzdCLEssR0FLZStCLGdDQUFnQyxHLEtBQS9DL0IsSyxHQTZCVXNDLE1BQU0sRyxLQURoQnJDLFNBQVMsQyxNQUFDLFFBQVEsQ0FBRSxDQUFFaUksTUFBTSxDQUFFLEtBQUssQ0FBRSxDLEdBK0IzQm5GLFdBQVcsRyxLQURyQi9DLEsiLCJpZ25vcmVMaXN0IjpbXX0=
|