@renaissancerentals/renaissance-component 12.1.53 → 12.2.0
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/lib/floorplan/data/Floorplan.d.ts +12 -0
- package/lib/floorplan/data/Floorplan.js +1 -1
- package/lib/floorplan/section/FloorplanHero.js +58 -36
- package/lib/floorplan/section/HeroBadgeStats.d.ts +3 -2
- package/lib/floorplan/section/HeroBadgeStats.js +5 -5
- package/lib/gallery/GalleryHeroMobile.d.ts +2 -1
- package/lib/gallery/GalleryHeroMobile.js +2 -2
- package/lib/gallery/GridGallery.d.ts +9 -0
- package/lib/gallery/GridGallery.js +32 -0
- package/lib/gallery/GridGalleryCover.d.ts +20 -0
- package/lib/gallery/GridGalleryCover.js +90 -0
- package/lib/gallery/assets/GridGallery.scss +124 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.js +13 -6
- package/lib/short-term/ShortTermFloorplanHero.js +63 -36
- package/package.json +1 -1
- package/lib/gallery/GalleryHeroMain.d.ts +0 -16
- package/lib/gallery/GalleryHeroMain.js +0 -72
|
@@ -12,12 +12,13 @@ var _AssetService = require("../asset/service/AssetService");
|
|
|
12
12
|
var _RenaissanceData = require("../data/RenaissanceData");
|
|
13
13
|
var _GalleryHeroSkeleton = require("../gallery/GalleryHeroSkeleton");
|
|
14
14
|
var _GalleryModal = require("../gallery/GalleryModal");
|
|
15
|
-
var _GalleryHeroMain = require("../gallery/GalleryHeroMain");
|
|
16
15
|
var _GalleryHeroMobile = require("../gallery/GalleryHeroMobile");
|
|
17
16
|
var _VideoTours = require("../gallery/VideoTours");
|
|
18
17
|
var _VirtualTour = require("../gallery/VirtualTour");
|
|
19
18
|
var _HeroBadgeStats = require("../floorplan/section/HeroBadgeStats");
|
|
20
19
|
var _AssetModal = require("../asset/AssetModal");
|
|
20
|
+
var _GridGalleryCover = require("../gallery/GridGalleryCover");
|
|
21
|
+
var _GridGallery = require("../gallery/GridGallery");
|
|
21
22
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
22
23
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
23
24
|
const ShortTermFloorplanHero = _ref => {
|
|
@@ -32,14 +33,16 @@ const ShortTermFloorplanHero = _ref => {
|
|
|
32
33
|
const [isAssetsLoading, setIsAssetsLoading] = (0, _react.useState)(true);
|
|
33
34
|
const [videoTours, setVideoTours] = (0, _react.useState)([]);
|
|
34
35
|
const [virtualTour, setVirtualTour] = (0, _react.useState)(undefined);
|
|
36
|
+
const [videoTourImageBackground, setVideoTourImageBackground] = (0, _react.useState)();
|
|
37
|
+
const [virtualTourImageBackground, setVirtualTourImageBackground] = (0, _react.useState)();
|
|
35
38
|
const [showFloorplanModal, setShowFloorplanModal] = (0, _react.useState)(false);
|
|
36
39
|
const [totalPages, setTotalPages] = (0, _react.useState)(1);
|
|
37
|
-
const [toursCount, setToursCount] = (0, _react.useState)(
|
|
40
|
+
const [toursCount, setToursCount] = (0, _react.useState)(1);
|
|
38
41
|
const [currentView, setCurrentView] = (0, _react.useState)("photo");
|
|
39
42
|
const [assetInFocus, setAssetInFocus] = (0, _react.useState)({});
|
|
40
43
|
const [assetIndex, setAssetIndex] = (0, _react.useState)(0);
|
|
41
44
|
const [showModal, setShowModal] = (0, _react.useState)(false);
|
|
42
|
-
const
|
|
45
|
+
const [firstPageImageCount, setFirstPageImageCount] = (0, _react.useState)(4);
|
|
43
46
|
const GRID_SIZE = 8;
|
|
44
47
|
const imageClickedHandler = image => {
|
|
45
48
|
setShowModal(true);
|
|
@@ -51,50 +54,63 @@ const ShortTermFloorplanHero = _ref => {
|
|
|
51
54
|
setAssetInFocus({});
|
|
52
55
|
};
|
|
53
56
|
(0, _react.useEffect)(() => {
|
|
54
|
-
if (floorplan.virtualTourLink) setVirtualTour(floorplan.virtualTourLink);
|
|
55
|
-
const tourLinks = [];
|
|
56
|
-
if (floorplan.videoTourLink) tourLinks.push(floorplan.videoTourLink);
|
|
57
|
-
if (floorplan.threeSixtyVideoTourLink) tourLinks.push(floorplan.threeSixtyVideoTourLink);
|
|
58
|
-
setVideoTours(tourLinks);
|
|
59
|
-
let otherAssetCounts = (tourLinks.length > 0 ? 1 : 0) + (floorplan.virtualTourLink ? 1 : 0);
|
|
60
|
-
setToursCount(otherAssetCounts);
|
|
61
57
|
const images = [];
|
|
62
58
|
images.push({
|
|
63
59
|
id: (0, _Utils.extractIdFrom)(floorplan.coverImage),
|
|
64
60
|
name: "cover image"
|
|
65
61
|
});
|
|
62
|
+
let firstPageCount = firstPageImageCount;
|
|
66
63
|
if (floorplan.photosFolderId) {
|
|
67
64
|
(0, _AssetService.getAssetsFrom)(floorplan.photosFolderId).then(galleryAssets => {
|
|
68
65
|
images.push(...galleryAssets);
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
66
|
+
if (images.length > 1) {
|
|
67
|
+
const backgroundImageUrl = (0, _AssetService.assetUrlFrom)(images[1].id, floorplan.property.id);
|
|
68
|
+
if (floorplan.virtualTourLink) {
|
|
69
|
+
setVirtualTour(floorplan.virtualTourLink);
|
|
70
|
+
setVirtualTourImageBackground(backgroundImageUrl);
|
|
71
|
+
firstPageCount -= 1;
|
|
72
|
+
}
|
|
73
|
+
const tourLinks = [];
|
|
74
|
+
if (floorplan.videoTourLink) tourLinks.push(floorplan.videoTourLink);
|
|
75
|
+
if (floorplan.threeSixtyVideoTourLink) tourLinks.push(floorplan.threeSixtyVideoTourLink);
|
|
76
|
+
setVideoTours(tourLinks);
|
|
77
|
+
if (tourLinks.length > 0) {
|
|
78
|
+
setVideoTourImageBackground(backgroundImageUrl);
|
|
79
|
+
firstPageCount -= 1;
|
|
80
|
+
}
|
|
81
|
+
let otherAssetCounts = (tourLinks.length > 0 ? 1 : 0) + (floorplan.virtualTourLink ? 1 : 0);
|
|
82
|
+
setToursCount(otherAssetCounts);
|
|
75
83
|
}
|
|
76
84
|
}).finally(() => {
|
|
85
|
+
let pages = 1;
|
|
86
|
+
if (images.length > firstPageCount) {
|
|
87
|
+
const remaining = images.length - firstPageCount;
|
|
88
|
+
pages += remaining / 8;
|
|
89
|
+
if (remaining % 8 > 0) pages += 1;
|
|
90
|
+
}
|
|
91
|
+
setTotalPages(Math.trunc(pages));
|
|
92
|
+
setFirstPageImageCount(firstPageCount);
|
|
77
93
|
setAssets(images);
|
|
78
94
|
setIsAssetsLoading(false);
|
|
79
95
|
});
|
|
80
96
|
} else {
|
|
81
97
|
setAssets(images);
|
|
82
|
-
console.log(images);
|
|
83
98
|
setIsAssetsLoading(false);
|
|
84
99
|
}
|
|
85
100
|
}, [floorplan]);
|
|
86
|
-
const isFirstSliderPage = slideIndex => slideIndex === 0;
|
|
87
|
-
const imageCountForFirstPage = () => FIRST_PAGE_ASSET_COUNT - toursCount;
|
|
88
|
-
const getImagesForFirstSliderPage = assets.slice(0, assets.length >= imageCountForFirstPage() ? imageCountForFirstPage() : assets.length);
|
|
89
|
-
const assetsToShow = slideIndex => {
|
|
90
|
-
if (isFirstSliderPage(slideIndex)) return getImagesForFirstSliderPage;
|
|
91
|
-
const startIndex = imageCountForFirstPage() + (slideIndex - 1) * 8;
|
|
92
|
-
const endIndex = startIndex + GRID_SIZE;
|
|
93
|
-
return assets.slice(startIndex, endIndex);
|
|
94
|
-
};
|
|
95
101
|
const printFloorplanAddress = () => {
|
|
96
102
|
return floorplan.address + ", " + _RenaissanceData.renaissance.city + ", " + _RenaissanceData.renaissance.state + " " + floorplan.zipcode;
|
|
97
103
|
};
|
|
104
|
+
const isFirstSliderPage = slideIndex => slideIndex === 0;
|
|
105
|
+
const assetsToShow = slideIndex => {
|
|
106
|
+
if (isFirstSliderPage(slideIndex)) {
|
|
107
|
+
console.log("firstPageImageCount", firstPageImageCount);
|
|
108
|
+
return assets.slice(0, firstPageImageCount - 1);
|
|
109
|
+
}
|
|
110
|
+
const startIndex = firstPageImageCount - 1 + GRID_SIZE * (slideIndex - 1);
|
|
111
|
+
const endIndex = firstPageImageCount - 1 + GRID_SIZE * slideIndex;
|
|
112
|
+
return assets.slice(startIndex, endIndex > assets.length ? assets.length : endIndex);
|
|
113
|
+
};
|
|
98
114
|
return /*#__PURE__*/_react.default.createElement("section", {
|
|
99
115
|
className: "section-short-term-floorplan--hero"
|
|
100
116
|
}, isAssetsLoading ? /*#__PURE__*/_react.default.createElement(_GalleryHeroSkeleton.GalleryHeroSkeleton, null) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -111,16 +127,27 @@ const ShortTermFloorplanHero = _ref => {
|
|
|
111
127
|
}), currentView === "photo" ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
112
128
|
className: "photo-view main"
|
|
113
129
|
}, /*#__PURE__*/_react.default.createElement(_muncherUi.ItemSlider, {
|
|
114
|
-
sliderItems: [...Array(totalPages)].map((x, i) => /*#__PURE__*/_react.default.createElement(
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
130
|
+
sliderItems: [...Array(totalPages)].map((x, i) => i == 0 ? /*#__PURE__*/_react.default.createElement(_GridGalleryCover.GridGalleryCover, {
|
|
131
|
+
assets: assetsToShow(i),
|
|
132
|
+
floorplanAddress: {
|
|
133
|
+
address: floorplan.address,
|
|
134
|
+
city: _RenaissanceData.renaissance.city,
|
|
135
|
+
state: _RenaissanceData.renaissance.state,
|
|
136
|
+
zipcode: floorplan.zipcode
|
|
137
|
+
},
|
|
138
|
+
propertyId: floorplan.property.id,
|
|
139
|
+
heroImage: assets[0],
|
|
140
|
+
imageClickedHandler: imageClickedHandler,
|
|
119
141
|
webSpecials: webSpecials,
|
|
142
|
+
isAvailableNow: false,
|
|
120
143
|
setCurrentView: setCurrentView,
|
|
144
|
+
videoTourImageBackground: videoTourImageBackground,
|
|
145
|
+
virtualTourImageBackground: virtualTourImageBackground,
|
|
146
|
+
showOnlyHeroImage: assets.length === 1
|
|
147
|
+
}) : /*#__PURE__*/_react.default.createElement(_GridGallery.GridGallery, {
|
|
121
148
|
imageClickedHandler: imageClickedHandler,
|
|
122
|
-
|
|
123
|
-
|
|
149
|
+
propertyId: floorplan.property.id,
|
|
150
|
+
assets: assetsToShow(i)
|
|
124
151
|
}))
|
|
125
152
|
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
126
153
|
className: "photo-view mobile"
|
|
@@ -133,9 +160,9 @@ const ShortTermFloorplanHero = _ref => {
|
|
|
133
160
|
webSpecials: webSpecials,
|
|
134
161
|
isAvailableNow: false,
|
|
135
162
|
propertyId: floorplan.property.id
|
|
136
|
-
}))) : "", currentView === "
|
|
163
|
+
}))) : "", currentView === "Video Tour" ? /*#__PURE__*/_react.default.createElement(_VideoTours.VideoTours, {
|
|
137
164
|
videoTourUrls: videoTours
|
|
138
|
-
}) : "", currentView === "
|
|
165
|
+
}) : "", currentView === "Virtual Tour" ? /*#__PURE__*/_react.default.createElement(_VirtualTour.VirtualTour, {
|
|
139
166
|
virtualTourUrl: virtualTour
|
|
140
167
|
}) : "", /*#__PURE__*/_react.default.createElement(_HeroBadgeStats.HeroBadgeStats, {
|
|
141
168
|
currentView: currentView,
|
|
@@ -195,4 +222,4 @@ const ShortTermFloorplanHero = _ref => {
|
|
|
195
222
|
}))))));
|
|
196
223
|
};
|
|
197
224
|
exports.ShortTermFloorplanHero = ShortTermFloorplanHero;
|
|
198
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbXVuY2hlclVpIiwiX1V0aWxzIiwiX0Fzc2V0U2VydmljZSIsIl9SZW5haXNzYW5jZURhdGEiLCJfR2FsbGVyeUhlcm9Ta2VsZXRvbiIsIl9HYWxsZXJ5TW9kYWwiLCJfR2FsbGVyeUhlcm9NYWluIiwiX0dhbGxlcnlIZXJvTW9iaWxlIiwiX1ZpZGVvVG91cnMiLCJfVmlydHVhbFRvdXIiLCJfSGVyb0JhZGdlU3RhdHMiLCJfQXNzZXRNb2RhbCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlNob3J0VGVybUZsb29ycGxhbkhlcm8iLCJfcmVmIiwiZmxvb3JwbGFuIiwiY29udGFjdENsaWNrSGFuZGxlciIsImFwcGx5Q2xpY2tIYW5kbGVyIiwiaGFuZGxlUmVmVG9NYXAiLCJ3ZWJTcGVjaWFscyIsImFzc2V0cyIsInNldEFzc2V0cyIsInVzZVN0YXRlIiwiaXNBc3NldHNMb2FkaW5nIiwic2V0SXNBc3NldHNMb2FkaW5nIiwidmlkZW9Ub3VycyIsInNldFZpZGVvVG91cnMiLCJ2aXJ0dWFsVG91ciIsInNldFZpcnR1YWxUb3VyIiwidW5kZWZpbmVkIiwic2hvd0Zsb29ycGxhbk1vZGFsIiwic2V0U2hvd0Zsb29ycGxhbk1vZGFsIiwidG90YWxQYWdlcyIsInNldFRvdGFsUGFnZXMiLCJ0b3Vyc0NvdW50Iiwic2V0VG91cnNDb3VudCIsImN1cnJlbnRWaWV3Iiwic2V0Q3VycmVudFZpZXciLCJhc3NldEluRm9jdXMiLCJzZXRBc3NldEluRm9jdXMiLCJhc3NldEluZGV4Iiwic2V0QXNzZXRJbmRleCIsInNob3dNb2RhbCIsInNldFNob3dNb2RhbCIsIkZJUlNUX1BBR0VfQVNTRVRfQ09VTlQiLCJHUklEX1NJWkUiLCJpbWFnZUNsaWNrZWRIYW5kbGVyIiwiaW1hZ2UiLCJmaW5kSW5kZXgiLCJ2YWx1ZSIsImlkIiwibW9kYWxDbG9zZUhhbmRsZXIiLCJ1c2VFZmZlY3QiLCJ2aXJ0dWFsVG91ckxpbmsiLCJ0b3VyTGlua3MiLCJ2aWRlb1RvdXJMaW5rIiwicHVzaCIsInRocmVlU2l4dHlWaWRlb1RvdXJMaW5rIiwib3RoZXJBc3NldENvdW50cyIsImxlbmd0aCIsImltYWdlcyIsImV4dHJhY3RJZEZyb20iLCJjb3ZlckltYWdlIiwibmFtZSIsInBob3Rvc0ZvbGRlcklkIiwiZ2V0QXNzZXRzRnJvbSIsInRoZW4iLCJnYWxsZXJ5QXNzZXRzIiwidG90YWxBc3NldHMiLCJwYWdlcyIsIk1hdGgiLCJ0cnVuYyIsImZpbmFsbHkiLCJjb25zb2xlIiwibG9nIiwiaXNGaXJzdFNsaWRlclBhZ2UiLCJzbGlkZUluZGV4IiwiaW1hZ2VDb3VudEZvckZpcnN0UGFnZSIsImdldEltYWdlc0ZvckZpcnN0U2xpZGVyUGFnZSIsInNsaWNlIiwiYXNzZXRzVG9TaG93Iiwic3RhcnRJbmRleCIsImVuZEluZGV4IiwicHJpbnRGbG9vcnBsYW5BZGRyZXNzIiwiYWRkcmVzcyIsInJlbmFpc3NhbmNlIiwiY2l0eSIsInN0YXRlIiwiemlwY29kZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJHYWxsZXJ5SGVyb1NrZWxldG9uIiwiRnJhZ21lbnQiLCJHYWxsZXJ5TW9kYWwiLCJwcm9wZXJ0eUlkIiwicHJvcGVydHkiLCJJdGVtU2xpZGVyIiwic2xpZGVySXRlbXMiLCJBcnJheSIsIm1hcCIsIngiLCJHYWxsZXJ5SGVyb01haW4iLCJpc0F2YWlsYWJsZU5vdyIsImlzRmlyc3QiLCJHYWxsZXJ5SGVyb01vYmlsZSIsIlZpZGVvVG91cnMiLCJ2aWRlb1RvdXJVcmxzIiwiVmlydHVhbFRvdXIiLCJ2aXJ0dWFsVG91clVybCIsIkhlcm9CYWRnZVN0YXRzIiwiQXNzZXRNb2RhbCIsImFzc2V0VXJsIiwicGhvdG8iLCJhc3NldFRpdGxlIiwic2hvcnRUZXJtIiwicHJpY2VGb3I0YW5kTW9yZU1vbnRocyIsInByaWNlRm9yNVRvMTNEYXlzIiwiQnV0dG9uIiwic2l6ZSIsIm9uQ2xpY2siLCJJY29uIiwib3JpZW50YXRpb24iLCJidXNSb3V0ZXMiLCJidXNSb3V0ZSIsImluZGV4Iiwia2V5IiwiaHJlZiIsImJ1c1JvdXRlTGluayIsInRhcmdldCIsInJlbCIsInZhcmlhbnQiLCJTaGFyZUJ1dHRvbiIsInRpdGxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaG9ydC10ZXJtL1Nob3J0VGVybUZsb29ycGxhbkhlcm8udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlU3RhdGV9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFwiLi9hc3NldHMvU2hvcnRUZXJtRmxvb3JwbGFuSGVyby5zY3NzXCI7XG5pbXBvcnQge0J1dHRvbiwgSWNvbiwgSXRlbVNsaWRlciwgU2hhcmVCdXR0b259IGZyb20gXCJAY29udGVudG11bmNoL211bmNoZXItdWlcIjtcbmltcG9ydCB7Rmxvb3JwbGFuU2hvcnRUZXJtfSBmcm9tIFwiLi9kYXRhL1Nob3J0VGVybVwiO1xuaW1wb3J0IHtBc3NldH0gZnJvbSBcIi4uL2Fzc2V0L2RhdGEvQXNzZXRcIjtcbmltcG9ydCB7ZXh0cmFjdElkRnJvbX0gZnJvbSBcIi4uL3V0aWxzL1V0aWxzXCI7XG5pbXBvcnQge2dldEFzc2V0c0Zyb219IGZyb20gXCIuLi9hc3NldC9zZXJ2aWNlL0Fzc2V0U2VydmljZVwiO1xuaW1wb3J0IHtXZWJTcGVjaWFsfSBmcm9tIFwiLi4vZmxvb3JwbGFuL2RhdGEvRmxvb3JwbGFuXCI7XG5pbXBvcnQge3JlbmFpc3NhbmNlfSBmcm9tIFwiLi4vZGF0YS9SZW5haXNzYW5jZURhdGFcIjtcbmltcG9ydCB7R2FsbGVyeUhlcm9Ta2VsZXRvbn0gZnJvbSBcIi4uL2dhbGxlcnkvR2FsbGVyeUhlcm9Ta2VsZXRvblwiO1xuaW1wb3J0IHtHYWxsZXJ5TW9kYWx9IGZyb20gXCIuLi9nYWxsZXJ5L0dhbGxlcnlNb2RhbFwiO1xuaW1wb3J0IHtHYWxsZXJ5SGVyb01haW59IGZyb20gXCIuLi9nYWxsZXJ5L0dhbGxlcnlIZXJvTWFpblwiO1xuaW1wb3J0IHtHYWxsZXJ5SGVyb01vYmlsZX0gZnJvbSBcIi4uL2dhbGxlcnkvR2FsbGVyeUhlcm9Nb2JpbGVcIjtcbmltcG9ydCB7VmlkZW9Ub3Vyc30gZnJvbSBcIi4uL2dhbGxlcnkvVmlkZW9Ub3Vyc1wiO1xuaW1wb3J0IHtWaXJ0dWFsVG91cn0gZnJvbSBcIi4uL2dhbGxlcnkvVmlydHVhbFRvdXJcIjtcbmltcG9ydCB7SGVyb0JhZGdlU3RhdHN9IGZyb20gXCIuLi9mbG9vcnBsYW4vc2VjdGlvbi9IZXJvQmFkZ2VTdGF0c1wiO1xuaW1wb3J0IHtBc3NldE1vZGFsfSBmcm9tIFwiLi4vYXNzZXQvQXNzZXRNb2RhbFwiO1xuXG5leHBvcnQgY29uc3QgU2hvcnRUZXJtRmxvb3JwbGFuSGVybzogUmVhY3QuRkM8U2hvcnRUZXJtRmxvb3JwbGFuSGVyb1Byb3BzPiA9IChcbiAgICB7Zmxvb3JwbGFuLCBjb250YWN0Q2xpY2tIYW5kbGVyLCBhcHBseUNsaWNrSGFuZGxlciwgaGFuZGxlUmVmVG9NYXAsIHdlYlNwZWNpYWxzfSkgPT4ge1xuICAgIGNvbnN0IFthc3NldHMsIHNldEFzc2V0c10gPSB1c2VTdGF0ZTxBc3NldFtdPihbXSk7XG4gICAgY29uc3QgW2lzQXNzZXRzTG9hZGluZywgc2V0SXNBc3NldHNMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFt2aWRlb1RvdXJzLCBzZXRWaWRlb1RvdXJzXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihbXSk7XG4gICAgY29uc3QgW3ZpcnR1YWxUb3VyLCBzZXRWaXJ0dWFsVG91cl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gICAgY29uc3QgW3Nob3dGbG9vcnBsYW5Nb2RhbCwgc2V0U2hvd0Zsb29ycGxhbk1vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbdG90YWxQYWdlcywgc2V0VG90YWxQYWdlc10gPSB1c2VTdGF0ZSgxKTtcbiAgICBjb25zdCBbdG91cnNDb3VudCwgc2V0VG91cnNDb3VudF0gPSB1c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbY3VycmVudFZpZXcsIHNldEN1cnJlbnRWaWV3XSA9IHVzZVN0YXRlPFwicGhvdG9cIiB8IFwidmlydHVhbCB0b3VyXCIgfCBcInZpZGVvIHRvdXJcIj4oXCJwaG90b1wiKTtcbiAgICBjb25zdCBbYXNzZXRJbkZvY3VzLCBzZXRBc3NldEluRm9jdXNdID0gdXNlU3RhdGU8QXNzZXQ+KHt9IGFzIEFzc2V0KTtcbiAgICBjb25zdCBbYXNzZXRJbmRleCwgc2V0QXNzZXRJbmRleF0gPSB1c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbc2hvd01vZGFsLCBzZXRTaG93TW9kYWxdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgY29uc3QgRklSU1RfUEFHRV9BU1NFVF9DT1VOVCA9IDU7XG4gICAgY29uc3QgR1JJRF9TSVpFID0gODtcbiAgICBjb25zdCBpbWFnZUNsaWNrZWRIYW5kbGVyID0gKGltYWdlOiBBc3NldCkgPT4ge1xuICAgICAgICBzZXRTaG93TW9kYWwodHJ1ZSk7XG4gICAgICAgIHNldEFzc2V0SW5Gb2N1cyhpbWFnZSk7XG4gICAgICAgIHNldEFzc2V0SW5kZXgoYXNzZXRzLmZpbmRJbmRleCh2YWx1ZSA9PiB2YWx1ZS5pZCA9PT0gaW1hZ2UuaWQpKTtcbiAgICB9O1xuICAgIGNvbnN0IG1vZGFsQ2xvc2VIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICBzZXRTaG93TW9kYWwoZmFsc2UpO1xuICAgICAgICBzZXRBc3NldEluRm9jdXMoe30gYXMgQXNzZXQpO1xuICAgIH07XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGZsb29ycGxhbi52aXJ0dWFsVG91ckxpbmspXG4gICAgICAgICAgICBzZXRWaXJ0dWFsVG91cihmbG9vcnBsYW4udmlydHVhbFRvdXJMaW5rKTtcbiAgICAgICAgY29uc3QgdG91ckxpbmtzID0gW107XG4gICAgICAgIGlmIChmbG9vcnBsYW4udmlkZW9Ub3VyTGluaylcbiAgICAgICAgICAgIHRvdXJMaW5rcy5wdXNoKGZsb29ycGxhbi52aWRlb1RvdXJMaW5rKTtcbiAgICAgICAgaWYgKGZsb29ycGxhbi50aHJlZVNpeHR5VmlkZW9Ub3VyTGluaylcbiAgICAgICAgICAgIHRvdXJMaW5rcy5wdXNoKGZsb29ycGxhbi50aHJlZVNpeHR5VmlkZW9Ub3VyTGluayk7XG4gICAgICAgIHNldFZpZGVvVG91cnModG91ckxpbmtzKTtcblxuICAgICAgICBsZXQgb3RoZXJBc3NldENvdW50cyA9ICh0b3VyTGlua3MubGVuZ3RoID4gMCA/IDEgOiAwKSArIChmbG9vcnBsYW4udmlydHVhbFRvdXJMaW5rID8gMSA6IDApO1xuICAgICAgICBzZXRUb3Vyc0NvdW50KG90aGVyQXNzZXRDb3VudHMpO1xuICAgICAgICBjb25zdCBpbWFnZXM6IEFzc2V0W10gPSBbXTtcbiAgICAgICAgaW1hZ2VzLnB1c2goe2lkOiBleHRyYWN0SWRGcm9tKGZsb29ycGxhbi5jb3ZlckltYWdlKSwgbmFtZTogXCJjb3ZlciBpbWFnZVwifSBhcyBBc3NldCk7XG5cbiAgICAgICAgaWYgKGZsb29ycGxhbi5waG90b3NGb2xkZXJJZCkge1xuICAgICAgICAgICAgZ2V0QXNzZXRzRnJvbShmbG9vcnBsYW4ucGhvdG9zRm9sZGVySWQpLnRoZW4oZ2FsbGVyeUFzc2V0cyA9PiB7XG4gICAgICAgICAgICAgICAgaW1hZ2VzLnB1c2goLi4uZ2FsbGVyeUFzc2V0cyk7XG4gICAgICAgICAgICAgICAgbGV0IHRvdGFsQXNzZXRzID0gaW1hZ2VzLmxlbmd0aCArIG90aGVyQXNzZXRDb3VudHM7XG4gICAgICAgICAgICAgICAgaWYgKHRvdGFsQXNzZXRzID4gRklSU1RfUEFHRV9BU1NFVF9DT1VOVCkge1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCBwYWdlcyA9IE1hdGgudHJ1bmMoKCh0b3RhbEFzc2V0cyAtIEZJUlNUX1BBR0VfQVNTRVRfQ09VTlQpIC8gR1JJRF9TSVpFKSArIDEpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICgodG90YWxBc3NldHMgLSBGSVJTVF9QQUdFX0FTU0VUX0NPVU5UIC0gMSkgJSBHUklEX1NJWkUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRvdGFsUGFnZXMocGFnZXMpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRvdGFsUGFnZXMocGFnZXMgKyAxKTtcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0QXNzZXRzKGltYWdlcyk7XG4gICAgICAgICAgICAgICAgc2V0SXNBc3NldHNMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0QXNzZXRzKGltYWdlcyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhpbWFnZXMpXG4gICAgICAgICAgICBzZXRJc0Fzc2V0c0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICB9LCBbZmxvb3JwbGFuXSlcblxuICAgIGNvbnN0IGlzRmlyc3RTbGlkZXJQYWdlID0gKHNsaWRlSW5kZXg6IG51bWJlcikgPT4gc2xpZGVJbmRleCA9PT0gMDtcbiAgICBjb25zdCBpbWFnZUNvdW50Rm9yRmlyc3RQYWdlID0gKCkgPT4gRklSU1RfUEFHRV9BU1NFVF9DT1VOVCAtIHRvdXJzQ291bnQ7XG5cbiAgICBjb25zdCBnZXRJbWFnZXNGb3JGaXJzdFNsaWRlclBhZ2UgPSBhc3NldHMuc2xpY2UoMCwgYXNzZXRzLmxlbmd0aCA+PSBpbWFnZUNvdW50Rm9yRmlyc3RQYWdlKCkgPyBpbWFnZUNvdW50Rm9yRmlyc3RQYWdlKCkgOiBhc3NldHMubGVuZ3RoKTtcbiAgICBjb25zdCBhc3NldHNUb1Nob3cgPSAoc2xpZGVJbmRleDogbnVtYmVyKSA9PiB7XG5cbiAgICAgICAgaWYgKGlzRmlyc3RTbGlkZXJQYWdlKHNsaWRlSW5kZXgpKVxuICAgICAgICAgICAgcmV0dXJuIGdldEltYWdlc0ZvckZpcnN0U2xpZGVyUGFnZTtcblxuICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gaW1hZ2VDb3VudEZvckZpcnN0UGFnZSgpICsgKHNsaWRlSW5kZXggLSAxKSAqIDg7XG4gICAgICAgIGNvbnN0IGVuZEluZGV4ID0gc3RhcnRJbmRleCArIEdSSURfU0laRTtcblxuICAgICAgICByZXR1cm4gYXNzZXRzLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcbiAgICB9O1xuXG4gICAgY29uc3QgcHJpbnRGbG9vcnBsYW5BZGRyZXNzID0gKCkgPT4ge1xuXG4gICAgICAgIHJldHVybiBmbG9vcnBsYW4uYWRkcmVzcyArIFwiLCBcIiArIHJlbmFpc3NhbmNlLmNpdHkgKyBcIiwgXCIgKyByZW5haXNzYW5jZS5zdGF0ZSArIFwiIFwiICsgZmxvb3JwbGFuLnppcGNvZGU7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInNlY3Rpb24tc2hvcnQtdGVybS1mbG9vcnBsYW4tLWhlcm9cIj5cbiAgICAgICAgICAgIHtpc0Fzc2V0c0xvYWRpbmcgPyA8R2FsbGVyeUhlcm9Ta2VsZXRvbi8+IDpcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdhbGxlcnktaGVyb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEdhbGxlcnlNb2RhbCBhc3NldHM9e2Fzc2V0c30gYXNzZXRJbkZvY3VzPXthc3NldEluRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEFzc2V0SW5Gb2N1cz17c2V0QXNzZXRJbkZvY3VzfSBzaG93TW9kYWw9e3Nob3dNb2RhbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRJbmRleD17YXNzZXRJbmRleH0gc2V0QXNzZXRJbmRleD17c2V0QXNzZXRJbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxDbG9zZUhhbmRsZXI9e21vZGFsQ2xvc2VIYW5kbGVyfSBwcm9wZXJ0eUlkPXtmbG9vcnBsYW4ucHJvcGVydHkuaWR9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjdXJyZW50VmlldyA9PT0gXCJwaG90b1wiID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBob3RvLXZpZXcgbWFpblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW1TbGlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXJJdGVtcz17Wy4uLkFycmF5KHRvdGFsUGFnZXMpXS5tYXAoKHgsIGkpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHYWxsZXJ5SGVyb01haW4gaXNBdmFpbGFibGVOb3c9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpcnR1YWxUb3VyPXt2aXJ0dWFsVG91cn0gaXNGaXJzdD17aSA9PT0gMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3Vyc0NvdW50PXt0b3Vyc0NvdW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYlNwZWNpYWxzPXt3ZWJTcGVjaWFsc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRDdXJyZW50Vmlldz17c2V0Q3VycmVudFZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VDbGlja2VkSGFuZGxlcj17aW1hZ2VDbGlja2VkSGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldHNUb1Nob3c9e2Fzc2V0c1RvU2hvdyhpKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eUlkPXtmbG9vcnBsYW4ucHJvcGVydHkuaWR9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBob3RvLXZpZXcgbW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R2FsbGVyeUhlcm9Nb2JpbGUgYXNzZXRzPXthc3NldHN9IHRvdXJzQ291bnQ9e3RvdXJzQ291bnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlydHVhbFRvdXI9e3ZpcnR1YWxUb3VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEN1cnJlbnRWaWV3PXtzZXRDdXJyZW50Vmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZUNsaWNrZWRIYW5kbGVyPXtpbWFnZUNsaWNrZWRIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYlNwZWNpYWxzPXt3ZWJTcGVjaWFsc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0F2YWlsYWJsZU5vdz17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlJZD17Zmxvb3JwbGFuLnByb3BlcnR5LmlkfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPiA6IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAge2N1cnJlbnRWaWV3ID09PSBcInZpZGVvIHRvdXJcIiA/IDxWaWRlb1RvdXJzIHZpZGVvVG91clVybHM9e3ZpZGVvVG91cnN9Lz4gOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAge2N1cnJlbnRWaWV3ID09PSBcInZpcnR1YWwgdG91clwiID8gPFZpcnR1YWxUb3VyIHZpcnR1YWxUb3VyVXJsPXt2aXJ0dWFsVG91cn0vPiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICA8SGVyb0JhZGdlU3RhdHMgY3VycmVudFZpZXc9e2N1cnJlbnRWaWV3fSBzZXRDdXJyZW50Vmlldz17c2V0Q3VycmVudFZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxBc3NldHM9e2Fzc2V0cz8ubGVuZ3RofSB2aWRlb1RvdXJzPXt2aWRlb1RvdXJzfSB2aXJ0dWFsVG91cj17dmlydHVhbFRvdXJ9Lz5cblxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8Lz5cblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPEFzc2V0TW9kYWwgYXNzZXRVcmw9e2Zsb29ycGxhbi5waG90b30gYXNzZXRUaXRsZT1cIkZsb29ycGxhbiBpbWFnZVwiIHNob3dNb2RhbD17c2hvd0Zsb29ycGxhbk1vZGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2hvd01vZGFsPXtzZXRTaG93Rmxvb3JwbGFuTW9kYWx9IHByb3BlcnR5SWQ9e2Zsb29ycGxhbi5wcm9wZXJ0eS5pZH0vPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb29ycGxhbi0tdHdvLWNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbG9vcnBsYW4tY29sdW1uLWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMz57Zmxvb3JwbGFuLm5hbWV9PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoND4ke2Zsb29ycGxhbi5zaG9ydFRlcm0ucHJpY2VGb3I0YW5kTW9yZU1vbnRoc30gLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7Zmxvb3JwbGFuLnNob3J0VGVybS5wcmljZUZvcjVUbzEzRGF5c30vRGF5PC9oND5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImZsb29ycGxhbi0tZGVzY3JpcHRpb25cIj57cHJpbnRGbG9vcnBsYW5BZGRyZXNzKCl9PC9wPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb29ycGxhbi0tZmVhdHVyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIHNpemU9XCJzbWFsbFwiIG9uQ2xpY2s9eygpID0+IHNldFNob3dGbG9vcnBsYW5Nb2RhbCh0cnVlKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIG5hbWU9XCJtYXhcIiBvcmllbnRhdGlvbj1cInJpZ2h0XCI+Vmlld0Zsb29ycGxhbjwvSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Jm5ic3A7Jm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiBzaXplPVwic21hbGxcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVSZWZUb01hcCgpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gb3JpZW50YXRpb249XCJyaWdodFwiIG5hbWU9XCJtYXBcIj5WaWV3IG9uIE1hcDwvSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Zmxvb3JwbGFuLnByb3BlcnR5LmJ1c1JvdXRlcy5sZW5ndGggPiAwID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+QnVzIFJvdXRlczombmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmbG9vcnBsYW4ucHJvcGVydHkuYnVzUm91dGVzLm1hcCgoYnVzUm91dGUsIGluZGV4KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGtleT17XCJidXMtcm91dGUtXCIgKyBpbmRleH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9e2J1c1JvdXRlLmJ1c1JvdXRlTGlua30gdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9yZWZlcnJlclwiPntidXNSb3V0ZS5idXNSb3V0ZX08L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbmRleCA8IGZsb29ycGxhbi5wcm9wZXJ0eS5idXNSb3V0ZXMubGVuZ3RoIC0gMSA/IFwiLCBcIiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWFpblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCIgZmxvb3JwbGFuLWNvbHVtbi1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cInByaW1hcnlcIiBzaXplPVwibWVkaXVtXCIgb25DbGljaz17Y29udGFjdENsaWNrSGFuZGxlcn0+Y29udGFjdCB1czwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cInRlcnRpYXJ5XCIgc2l6ZT1cIm1lZGl1bVwiIG9uQ2xpY2s9e2FwcGx5Q2xpY2tIYW5kbGVyfT5hcHBseTwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaGFyZUJ1dHRvbiB0aXRsZT1cIkNoZWNrIG91dCB0aGlzIGFwYXJ0bWVudFwiIHNpemU9XCJsYXJnZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hvcnRUZXJtRmxvb3JwbGFuSGVyb1Byb3BzIHtcbiAgICBmbG9vcnBsYW46IEZsb29ycGxhblNob3J0VGVybTtcbiAgICB3ZWJTcGVjaWFsczogV2ViU3BlY2lhbFtdO1xuICAgIGNvbnRhY3RDbGlja0hhbmRsZXI6ICgpID0+IHZvaWQ7XG4gICAgYXBwbHlDbGlja0hhbmRsZXI6ICgpID0+IHZvaWQ7XG4gICAgaGFuZGxlUmVmVG9NYXA6ICgpID0+IHZvaWQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBR0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBRUEsSUFBQUksZ0JBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLG9CQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxnQkFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsa0JBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFdBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLFlBQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLGVBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLFdBQUEsR0FBQVosT0FBQTtBQUErQyxTQUFBYSx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBZix3QkFBQWUsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFB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
|
|
225
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbXVuY2hlclVpIiwiX1V0aWxzIiwiX0Fzc2V0U2VydmljZSIsIl9SZW5haXNzYW5jZURhdGEiLCJfR2FsbGVyeUhlcm9Ta2VsZXRvbiIsIl9HYWxsZXJ5TW9kYWwiLCJfR2FsbGVyeUhlcm9Nb2JpbGUiLCJfVmlkZW9Ub3VycyIsIl9WaXJ0dWFsVG91ciIsIl9IZXJvQmFkZ2VTdGF0cyIsIl9Bc3NldE1vZGFsIiwiX0dyaWRHYWxsZXJ5Q292ZXIiLCJfR3JpZEdhbGxlcnkiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJTaG9ydFRlcm1GbG9vcnBsYW5IZXJvIiwiX3JlZiIsImZsb29ycGxhbiIsImNvbnRhY3RDbGlja0hhbmRsZXIiLCJhcHBseUNsaWNrSGFuZGxlciIsImhhbmRsZVJlZlRvTWFwIiwid2ViU3BlY2lhbHMiLCJhc3NldHMiLCJzZXRBc3NldHMiLCJ1c2VTdGF0ZSIsImlzQXNzZXRzTG9hZGluZyIsInNldElzQXNzZXRzTG9hZGluZyIsInZpZGVvVG91cnMiLCJzZXRWaWRlb1RvdXJzIiwidmlydHVhbFRvdXIiLCJzZXRWaXJ0dWFsVG91ciIsInVuZGVmaW5lZCIsInZpZGVvVG91ckltYWdlQmFja2dyb3VuZCIsInNldFZpZGVvVG91ckltYWdlQmFja2dyb3VuZCIsInZpcnR1YWxUb3VySW1hZ2VCYWNrZ3JvdW5kIiwic2V0VmlydHVhbFRvdXJJbWFnZUJhY2tncm91bmQiLCJzaG93Rmxvb3JwbGFuTW9kYWwiLCJzZXRTaG93Rmxvb3JwbGFuTW9kYWwiLCJ0b3RhbFBhZ2VzIiwic2V0VG90YWxQYWdlcyIsInRvdXJzQ291bnQiLCJzZXRUb3Vyc0NvdW50IiwiY3VycmVudFZpZXciLCJzZXRDdXJyZW50VmlldyIsImFzc2V0SW5Gb2N1cyIsInNldEFzc2V0SW5Gb2N1cyIsImFzc2V0SW5kZXgiLCJzZXRBc3NldEluZGV4Iiwic2hvd01vZGFsIiwic2V0U2hvd01vZGFsIiwiZmlyc3RQYWdlSW1hZ2VDb3VudCIsInNldEZpcnN0UGFnZUltYWdlQ291bnQiLCJHUklEX1NJWkUiLCJpbWFnZUNsaWNrZWRIYW5kbGVyIiwiaW1hZ2UiLCJmaW5kSW5kZXgiLCJ2YWx1ZSIsImlkIiwibW9kYWxDbG9zZUhhbmRsZXIiLCJ1c2VFZmZlY3QiLCJpbWFnZXMiLCJwdXNoIiwiZXh0cmFjdElkRnJvbSIsImNvdmVySW1hZ2UiLCJuYW1lIiwiZmlyc3RQYWdlQ291bnQiLCJwaG90b3NGb2xkZXJJZCIsImdldEFzc2V0c0Zyb20iLCJ0aGVuIiwiZ2FsbGVyeUFzc2V0cyIsImxlbmd0aCIsImJhY2tncm91bmRJbWFnZVVybCIsImFzc2V0VXJsRnJvbSIsInByb3BlcnR5IiwidmlydHVhbFRvdXJMaW5rIiwidG91ckxpbmtzIiwidmlkZW9Ub3VyTGluayIsInRocmVlU2l4dHlWaWRlb1RvdXJMaW5rIiwib3RoZXJBc3NldENvdW50cyIsImZpbmFsbHkiLCJwYWdlcyIsInJlbWFpbmluZyIsIk1hdGgiLCJ0cnVuYyIsInByaW50Rmxvb3JwbGFuQWRkcmVzcyIsImFkZHJlc3MiLCJyZW5haXNzYW5jZSIsImNpdHkiLCJzdGF0ZSIsInppcGNvZGUiLCJpc0ZpcnN0U2xpZGVyUGFnZSIsInNsaWRlSW5kZXgiLCJhc3NldHNUb1Nob3ciLCJjb25zb2xlIiwibG9nIiwic2xpY2UiLCJzdGFydEluZGV4IiwiZW5kSW5kZXgiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiR2FsbGVyeUhlcm9Ta2VsZXRvbiIsIkZyYWdtZW50IiwiR2FsbGVyeU1vZGFsIiwicHJvcGVydHlJZCIsIkl0ZW1TbGlkZXIiLCJzbGlkZXJJdGVtcyIsIkFycmF5IiwibWFwIiwieCIsIkdyaWRHYWxsZXJ5Q292ZXIiLCJmbG9vcnBsYW5BZGRyZXNzIiwiaGVyb0ltYWdlIiwiaXNBdmFpbGFibGVOb3ciLCJzaG93T25seUhlcm9JbWFnZSIsIkdyaWRHYWxsZXJ5IiwiR2FsbGVyeUhlcm9Nb2JpbGUiLCJWaWRlb1RvdXJzIiwidmlkZW9Ub3VyVXJscyIsIlZpcnR1YWxUb3VyIiwidmlydHVhbFRvdXJVcmwiLCJIZXJvQmFkZ2VTdGF0cyIsInRvdGFsQXNzZXRzIiwiQXNzZXRNb2RhbCIsImFzc2V0VXJsIiwicGhvdG8iLCJhc3NldFRpdGxlIiwic2hvcnRUZXJtIiwicHJpY2VGb3I0YW5kTW9yZU1vbnRocyIsInByaWNlRm9yNVRvMTNEYXlzIiwiQnV0dG9uIiwic2l6ZSIsIm9uQ2xpY2siLCJJY29uIiwib3JpZW50YXRpb24iLCJidXNSb3V0ZXMiLCJidXNSb3V0ZSIsImluZGV4Iiwia2V5IiwiaHJlZiIsImJ1c1JvdXRlTGluayIsInRhcmdldCIsInJlbCIsInZhcmlhbnQiLCJTaGFyZUJ1dHRvbiIsInRpdGxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaG9ydC10ZXJtL1Nob3J0VGVybUZsb29ycGxhbkhlcm8udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlU3RhdGV9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFwiLi9hc3NldHMvU2hvcnRUZXJtRmxvb3JwbGFuSGVyby5zY3NzXCI7XG5pbXBvcnQge0J1dHRvbiwgSWNvbiwgSXRlbVNsaWRlciwgU2hhcmVCdXR0b259IGZyb20gXCJAY29udGVudG11bmNoL211bmNoZXItdWlcIjtcbmltcG9ydCB7Rmxvb3JwbGFuU2hvcnRUZXJtfSBmcm9tIFwiLi9kYXRhL1Nob3J0VGVybVwiO1xuaW1wb3J0IHtBc3NldH0gZnJvbSBcIi4uL2Fzc2V0L2RhdGEvQXNzZXRcIjtcbmltcG9ydCB7ZXh0cmFjdElkRnJvbX0gZnJvbSBcIi4uL3V0aWxzL1V0aWxzXCI7XG5pbXBvcnQge2Fzc2V0VXJsRnJvbSwgZ2V0QXNzZXRzRnJvbX0gZnJvbSBcIi4uL2Fzc2V0L3NlcnZpY2UvQXNzZXRTZXJ2aWNlXCI7XG5pbXBvcnQge1dlYlNwZWNpYWx9IGZyb20gXCIuLi9mbG9vcnBsYW4vZGF0YS9GbG9vcnBsYW5cIjtcbmltcG9ydCB7cmVuYWlzc2FuY2V9IGZyb20gXCIuLi9kYXRhL1JlbmFpc3NhbmNlRGF0YVwiO1xuaW1wb3J0IHtHYWxsZXJ5SGVyb1NrZWxldG9ufSBmcm9tIFwiLi4vZ2FsbGVyeS9HYWxsZXJ5SGVyb1NrZWxldG9uXCI7XG5pbXBvcnQge0dhbGxlcnlNb2RhbH0gZnJvbSBcIi4uL2dhbGxlcnkvR2FsbGVyeU1vZGFsXCI7XG5pbXBvcnQge0dhbGxlcnlIZXJvTW9iaWxlfSBmcm9tIFwiLi4vZ2FsbGVyeS9HYWxsZXJ5SGVyb01vYmlsZVwiO1xuaW1wb3J0IHtWaWRlb1RvdXJzfSBmcm9tIFwiLi4vZ2FsbGVyeS9WaWRlb1RvdXJzXCI7XG5pbXBvcnQge1ZpcnR1YWxUb3VyfSBmcm9tIFwiLi4vZ2FsbGVyeS9WaXJ0dWFsVG91clwiO1xuaW1wb3J0IHtIZXJvQmFkZ2VTdGF0c30gZnJvbSBcIi4uL2Zsb29ycGxhbi9zZWN0aW9uL0hlcm9CYWRnZVN0YXRzXCI7XG5pbXBvcnQge0Fzc2V0TW9kYWx9IGZyb20gXCIuLi9hc3NldC9Bc3NldE1vZGFsXCI7XG5pbXBvcnQge0dyaWRHYWxsZXJ5Q292ZXIsIFRvdXJUeXBlfSBmcm9tIFwiLi4vZ2FsbGVyeS9HcmlkR2FsbGVyeUNvdmVyXCI7XG5pbXBvcnQge0dyaWRHYWxsZXJ5fSBmcm9tIFwiLi4vZ2FsbGVyeS9HcmlkR2FsbGVyeVwiO1xuXG5leHBvcnQgY29uc3QgU2hvcnRUZXJtRmxvb3JwbGFuSGVybzogUmVhY3QuRkM8U2hvcnRUZXJtRmxvb3JwbGFuSGVyb1Byb3BzPiA9IChcbiAgICB7Zmxvb3JwbGFuLCBjb250YWN0Q2xpY2tIYW5kbGVyLCBhcHBseUNsaWNrSGFuZGxlciwgaGFuZGxlUmVmVG9NYXAsIHdlYlNwZWNpYWxzfSkgPT4ge1xuICAgIGNvbnN0IFthc3NldHMsIHNldEFzc2V0c10gPSB1c2VTdGF0ZTxBc3NldFtdPihbXSk7XG4gICAgY29uc3QgW2lzQXNzZXRzTG9hZGluZywgc2V0SXNBc3NldHNMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFt2aWRlb1RvdXJzLCBzZXRWaWRlb1RvdXJzXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihbXSk7XG4gICAgY29uc3QgW3ZpcnR1YWxUb3VyLCBzZXRWaXJ0dWFsVG91cl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgICBjb25zdCBbdmlkZW9Ub3VySW1hZ2VCYWNrZ3JvdW5kLCBzZXRWaWRlb1RvdXJJbWFnZUJhY2tncm91bmRdID0gdXNlU3RhdGU8c3RyaW5nPigpO1xuICAgIGNvbnN0IFt2aXJ0dWFsVG91ckltYWdlQmFja2dyb3VuZCwgc2V0VmlydHVhbFRvdXJJbWFnZUJhY2tncm91bmRdID0gdXNlU3RhdGU8c3RyaW5nPigpO1xuXG4gICAgY29uc3QgW3Nob3dGbG9vcnBsYW5Nb2RhbCwgc2V0U2hvd0Zsb29ycGxhbk1vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbdG90YWxQYWdlcywgc2V0VG90YWxQYWdlc10gPSB1c2VTdGF0ZSgxKTtcbiAgICBjb25zdCBbdG91cnNDb3VudCwgc2V0VG91cnNDb3VudF0gPSB1c2VTdGF0ZSgxKTtcbiAgICBjb25zdCBbY3VycmVudFZpZXcsIHNldEN1cnJlbnRWaWV3XSA9IHVzZVN0YXRlPFwicGhvdG9cIiB8IFRvdXJUeXBlPihcInBob3RvXCIpO1xuICAgIGNvbnN0IFthc3NldEluRm9jdXMsIHNldEFzc2V0SW5Gb2N1c10gPSB1c2VTdGF0ZTxBc3NldD4oe30gYXMgQXNzZXQpO1xuICAgIGNvbnN0IFthc3NldEluZGV4LCBzZXRBc3NldEluZGV4XSA9IHVzZVN0YXRlKDApO1xuICAgIGNvbnN0IFtzaG93TW9kYWwsIHNldFNob3dNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2ZpcnN0UGFnZUltYWdlQ291bnQsIHNldEZpcnN0UGFnZUltYWdlQ291bnRdID0gdXNlU3RhdGUoNCk7XG5cbiAgICBjb25zdCBHUklEX1NJWkUgPSA4O1xuICAgIGNvbnN0IGltYWdlQ2xpY2tlZEhhbmRsZXIgPSAoaW1hZ2U6IEFzc2V0KSA9PiB7XG4gICAgICAgIHNldFNob3dNb2RhbCh0cnVlKTtcbiAgICAgICAgc2V0QXNzZXRJbkZvY3VzKGltYWdlKTtcbiAgICAgICAgc2V0QXNzZXRJbmRleChhc3NldHMuZmluZEluZGV4KHZhbHVlID0+IHZhbHVlLmlkID09PSBpbWFnZS5pZCkpO1xuICAgIH07XG4gICAgY29uc3QgbW9kYWxDbG9zZUhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHNldFNob3dNb2RhbChmYWxzZSk7XG4gICAgICAgIHNldEFzc2V0SW5Gb2N1cyh7fSBhcyBBc3NldCk7XG4gICAgfTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBpbWFnZXM6IEFzc2V0W10gPSBbXTtcbiAgICAgICAgaW1hZ2VzLnB1c2goe2lkOiBleHRyYWN0SWRGcm9tKGZsb29ycGxhbi5jb3ZlckltYWdlKSwgbmFtZTogXCJjb3ZlciBpbWFnZVwifSBhcyBBc3NldCk7XG5cbiAgICAgICAgbGV0IGZpcnN0UGFnZUNvdW50ID0gZmlyc3RQYWdlSW1hZ2VDb3VudDtcblxuICAgICAgICBpZiAoZmxvb3JwbGFuLnBob3Rvc0ZvbGRlcklkKSB7XG4gICAgICAgICAgICBnZXRBc3NldHNGcm9tKGZsb29ycGxhbi5waG90b3NGb2xkZXJJZCkudGhlbihnYWxsZXJ5QXNzZXRzID0+IHtcblxuICAgICAgICAgICAgICAgIGltYWdlcy5wdXNoKC4uLmdhbGxlcnlBc3NldHMpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGltYWdlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJhY2tncm91bmRJbWFnZVVybCA9IGFzc2V0VXJsRnJvbShpbWFnZXNbMV0uaWQsIGZsb29ycGxhbi5wcm9wZXJ0eS5pZCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmbG9vcnBsYW4udmlydHVhbFRvdXJMaW5rKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRWaXJ0dWFsVG91cihmbG9vcnBsYW4udmlydHVhbFRvdXJMaW5rKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFZpcnR1YWxUb3VySW1hZ2VCYWNrZ3JvdW5kKGJhY2tncm91bmRJbWFnZVVybCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaXJzdFBhZ2VDb3VudCAtPSAxO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG91ckxpbmtzID0gW107XG4gICAgICAgICAgICAgICAgICAgIGlmIChmbG9vcnBsYW4udmlkZW9Ub3VyTGluaylcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvdXJMaW5rcy5wdXNoKGZsb29ycGxhbi52aWRlb1RvdXJMaW5rKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZsb29ycGxhbi50aHJlZVNpeHR5VmlkZW9Ub3VyTGluaylcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvdXJMaW5rcy5wdXNoKGZsb29ycGxhbi50aHJlZVNpeHR5VmlkZW9Ub3VyTGluayk7XG4gICAgICAgICAgICAgICAgICAgIHNldFZpZGVvVG91cnModG91ckxpbmtzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRvdXJMaW5rcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRWaWRlb1RvdXJJbWFnZUJhY2tncm91bmQoYmFja2dyb3VuZEltYWdlVXJsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0UGFnZUNvdW50IC09IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBsZXQgb3RoZXJBc3NldENvdW50cyA9ICh0b3VyTGlua3MubGVuZ3RoID4gMCA/IDEgOiAwKSArIChmbG9vcnBsYW4udmlydHVhbFRvdXJMaW5rID8gMSA6IDApO1xuICAgICAgICAgICAgICAgICAgICBzZXRUb3Vyc0NvdW50KG90aGVyQXNzZXRDb3VudHMpO1xuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9KS5maW5hbGx5KCgpID0+IHtcblxuICAgICAgICAgICAgICAgIGxldCBwYWdlcyA9IDE7XG5cbiAgICAgICAgICAgICAgICBpZiAoaW1hZ2VzLmxlbmd0aCA+IGZpcnN0UGFnZUNvdW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlbWFpbmluZyA9IGltYWdlcy5sZW5ndGggLSBmaXJzdFBhZ2VDb3VudDtcbiAgICAgICAgICAgICAgICAgICAgcGFnZXMgKz0gcmVtYWluaW5nIC8gODtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlbWFpbmluZyAlIDggPiAwKVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZXMgKz0gMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzZXRUb3RhbFBhZ2VzKE1hdGgudHJ1bmMocGFnZXMpKTtcbiAgICAgICAgICAgICAgICBzZXRGaXJzdFBhZ2VJbWFnZUNvdW50KGZpcnN0UGFnZUNvdW50KTtcbiAgICAgICAgICAgICAgICBzZXRBc3NldHMoaW1hZ2VzKTtcbiAgICAgICAgICAgICAgICBzZXRJc0Fzc2V0c0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRBc3NldHMoaW1hZ2VzKTtcbiAgICAgICAgICAgIHNldElzQXNzZXRzTG9hZGluZyhmYWxzZSk7XG4gICAgICAgIH1cblxuICAgIH0sIFtmbG9vcnBsYW5dKVxuXG5cbiAgICBjb25zdCBwcmludEZsb29ycGxhbkFkZHJlc3MgPSAoKSA9PiB7XG5cbiAgICAgICAgcmV0dXJuIGZsb29ycGxhbi5hZGRyZXNzICsgXCIsIFwiICsgcmVuYWlzc2FuY2UuY2l0eSArIFwiLCBcIiArIHJlbmFpc3NhbmNlLnN0YXRlICsgXCIgXCIgKyBmbG9vcnBsYW4uemlwY29kZTtcbiAgICB9XG4gICAgY29uc3QgaXNGaXJzdFNsaWRlclBhZ2UgPSAoc2xpZGVJbmRleDogbnVtYmVyKSA9PiBzbGlkZUluZGV4ID09PSAwO1xuXG4gICAgY29uc3QgYXNzZXRzVG9TaG93ID0gKHNsaWRlSW5kZXg6IG51bWJlcikgPT4ge1xuXG4gICAgICAgIGlmIChpc0ZpcnN0U2xpZGVyUGFnZShzbGlkZUluZGV4KSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmaXJzdFBhZ2VJbWFnZUNvdW50XCIsIGZpcnN0UGFnZUltYWdlQ291bnQpO1xuICAgICAgICAgICAgcmV0dXJuIGFzc2V0cy5zbGljZSgwLCBmaXJzdFBhZ2VJbWFnZUNvdW50IC0gMSk7XG4gICAgICAgIH1cblxuXG4gICAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSBmaXJzdFBhZ2VJbWFnZUNvdW50IC0gMSArIChHUklEX1NJWkUgKiAoc2xpZGVJbmRleCAtIDEpKVxuICAgICAgICBjb25zdCBlbmRJbmRleCA9IGZpcnN0UGFnZUltYWdlQ291bnQgLSAxICsgKEdSSURfU0laRSAqIHNsaWRlSW5kZXgpXG5cbiAgICAgICAgcmV0dXJuIGFzc2V0cy5zbGljZShzdGFydEluZGV4LCBlbmRJbmRleCA+IGFzc2V0cy5sZW5ndGggPyBhc3NldHMubGVuZ3RoIDogZW5kSW5kZXgpO1xuICAgIH07XG4gICAgcmV0dXJuIChcbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwic2VjdGlvbi1zaG9ydC10ZXJtLWZsb29ycGxhbi0taGVyb1wiPlxuICAgICAgICAgICAge2lzQXNzZXRzTG9hZGluZyA/IDxHYWxsZXJ5SGVyb1NrZWxldG9uLz4gOlxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ2FsbGVyeS1oZXJvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8R2FsbGVyeU1vZGFsIGFzc2V0cz17YXNzZXRzfSBhc3NldEluRm9jdXM9e2Fzc2V0SW5Gb2N1c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0QXNzZXRJbkZvY3VzPXtzZXRBc3NldEluRm9jdXN9IHNob3dNb2RhbD17c2hvd01vZGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldEluZGV4PXthc3NldEluZGV4fSBzZXRBc3NldEluZGV4PXtzZXRBc3NldEluZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RhbENsb3NlSGFuZGxlcj17bW9kYWxDbG9zZUhhbmRsZXJ9IHByb3BlcnR5SWQ9e2Zsb29ycGxhbi5wcm9wZXJ0eS5pZH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAge2N1cnJlbnRWaWV3ID09PSBcInBob3RvXCIgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGhvdG8tdmlldyBtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbVNsaWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlckl0ZW1zPXtbLi4uQXJyYXkodG90YWxQYWdlcyldLm1hcCgoeCwgaSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGkgPT0gMCkgPyA8R3JpZEdhbGxlcnlDb3ZlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0cz17YXNzZXRzVG9TaG93KGkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb29ycGxhbkFkZHJlc3M9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzczogZmxvb3JwbGFuLmFkZHJlc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpdHk6IHJlbmFpc3NhbmNlLmNpdHksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiByZW5haXNzYW5jZS5zdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgemlwY29kZTogZmxvb3JwbGFuLnppcGNvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5SWQ9e2Zsb29ycGxhbi5wcm9wZXJ0eS5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZXJvSW1hZ2U9e2Fzc2V0c1swXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZUNsaWNrZWRIYW5kbGVyPXtpbWFnZUNsaWNrZWRIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYlNwZWNpYWxzPXt3ZWJTcGVjaWFsc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0F2YWlsYWJsZU5vdz17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q3VycmVudFZpZXc9e3NldEN1cnJlbnRWaWV3fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvVG91ckltYWdlQmFja2dyb3VuZD17dmlkZW9Ub3VySW1hZ2VCYWNrZ3JvdW5kfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpcnR1YWxUb3VySW1hZ2VCYWNrZ3JvdW5kPXt2aXJ0dWFsVG91ckltYWdlQmFja2dyb3VuZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93T25seUhlcm9JbWFnZT17YXNzZXRzLmxlbmd0aCA9PT0gMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+IDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkR2FsbGVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlQ2xpY2tlZEhhbmRsZXI9e2ltYWdlQ2xpY2tlZEhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlJZD17Zmxvb3JwbGFuLnByb3BlcnR5LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0cz17YXNzZXRzVG9TaG93KGkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBob3RvLXZpZXcgbW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R2FsbGVyeUhlcm9Nb2JpbGUgYXNzZXRzPXthc3NldHN9IHRvdXJzQ291bnQ9e3RvdXJzQ291bnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlydHVhbFRvdXI9e3ZpcnR1YWxUb3VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEN1cnJlbnRWaWV3PXtzZXRDdXJyZW50Vmlld31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZUNsaWNrZWRIYW5kbGVyPXtpbWFnZUNsaWNrZWRIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYlNwZWNpYWxzPXt3ZWJTcGVjaWFsc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0F2YWlsYWJsZU5vdz17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlJZD17Zmxvb3JwbGFuLnByb3BlcnR5LmlkfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPiA6IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAge2N1cnJlbnRWaWV3ID09PSBcIlZpZGVvIFRvdXJcIiA/IDxWaWRlb1RvdXJzIHZpZGVvVG91clVybHM9e3ZpZGVvVG91cnN9Lz4gOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICAgICAge2N1cnJlbnRWaWV3ID09PSBcIlZpcnR1YWwgVG91clwiID8gPFZpcnR1YWxUb3VyIHZpcnR1YWxUb3VyVXJsPXt2aXJ0dWFsVG91cn0vPiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICA8SGVyb0JhZGdlU3RhdHMgY3VycmVudFZpZXc9e2N1cnJlbnRWaWV3fSBzZXRDdXJyZW50Vmlldz17c2V0Q3VycmVudFZpZXd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxBc3NldHM9e2Fzc2V0cz8ubGVuZ3RofSB2aWRlb1RvdXJzPXt2aWRlb1RvdXJzfSB2aXJ0dWFsVG91cj17dmlydHVhbFRvdXJ9Lz5cblxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8Lz5cblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPEFzc2V0TW9kYWwgYXNzZXRVcmw9e2Zsb29ycGxhbi5waG90b30gYXNzZXRUaXRsZT1cIkZsb29ycGxhbiBpbWFnZVwiIHNob3dNb2RhbD17c2hvd0Zsb29ycGxhbk1vZGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2hvd01vZGFsPXtzZXRTaG93Rmxvb3JwbGFuTW9kYWx9IHByb3BlcnR5SWQ9e2Zsb29ycGxhbi5wcm9wZXJ0eS5pZH0vPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb29ycGxhbi0tdHdvLWNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbG9vcnBsYW4tY29sdW1uLWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMz57Zmxvb3JwbGFuLm5hbWV9PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoND4ke2Zsb29ycGxhbi5zaG9ydFRlcm0ucHJpY2VGb3I0YW5kTW9yZU1vbnRoc30gLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7Zmxvb3JwbGFuLnNob3J0VGVybS5wcmljZUZvcjVUbzEzRGF5c30vRGF5PC9oND5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImZsb29ycGxhbi0tZGVzY3JpcHRpb25cIj57cHJpbnRGbG9vcnBsYW5BZGRyZXNzKCl9PC9wPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb29ycGxhbi0tZmVhdHVyZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIHNpemU9XCJzbWFsbFwiIG9uQ2xpY2s9eygpID0+IHNldFNob3dGbG9vcnBsYW5Nb2RhbCh0cnVlKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIG5hbWU9XCJtYXhcIiBvcmllbnRhdGlvbj1cInJpZ2h0XCI+Vmlld0Zsb29ycGxhbjwvSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Jm5ic3A7Jm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiBzaXplPVwic21hbGxcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVSZWZUb01hcCgpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gb3JpZW50YXRpb249XCJyaWdodFwiIG5hbWU9XCJtYXBcIj5WaWV3IG9uIE1hcDwvSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Zmxvb3JwbGFuLnByb3BlcnR5LmJ1c1JvdXRlcy5sZW5ndGggPiAwID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+QnVzIFJvdXRlczombmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmbG9vcnBsYW4ucHJvcGVydHkuYnVzUm91dGVzLm1hcCgoYnVzUm91dGUsIGluZGV4KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGtleT17XCJidXMtcm91dGUtXCIgKyBpbmRleH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9e2J1c1JvdXRlLmJ1c1JvdXRlTGlua30gdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9yZWZlcnJlclwiPntidXNSb3V0ZS5idXNSb3V0ZX08L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbmRleCA8IGZsb29ycGxhbi5wcm9wZXJ0eS5idXNSb3V0ZXMubGVuZ3RoIC0gMSA/IFwiLCBcIiA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWFpblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCIgZmxvb3JwbGFuLWNvbHVtbi1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cInByaW1hcnlcIiBzaXplPVwibWVkaXVtXCIgb25DbGljaz17Y29udGFjdENsaWNrSGFuZGxlcn0+Y29udGFjdCB1czwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cInRlcnRpYXJ5XCIgc2l6ZT1cIm1lZGl1bVwiIG9uQ2xpY2s9e2FwcGx5Q2xpY2tIYW5kbGVyfT5hcHBseTwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaGFyZUJ1dHRvbiB0aXRsZT1cIkNoZWNrIG91dCB0aGlzIGFwYXJ0bWVudFwiIHNpemU9XCJsYXJnZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hvcnRUZXJtRmxvb3JwbGFuSGVyb1Byb3BzIHtcbiAgICBmbG9vcnBsYW46IEZsb29ycGxhblNob3J0VGVybTtcbiAgICB3ZWJTcGVjaWFsczogV2ViU3BlY2lhbFtdO1xuICAgIGNvbnRhY3RDbGlja0hhbmRsZXI6ICgpID0+IHZvaWQ7XG4gICAgYXBwbHlDbGlja0hhbmRsZXI6ICgpID0+IHZvaWQ7XG4gICAgaGFuZGxlUmVmVG9NYXA6ICgpID0+IHZvaWQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBR0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBRUEsSUFBQUksZ0JBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLG9CQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxrQkFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsWUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsZUFBQSxHQUFBVixP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
|
package/package.json
CHANGED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import './assets/GalleryHero.scss';
|
|
3
|
-
import { Asset } from "../asset/data/Asset";
|
|
4
|
-
import { WebSpecial } from "../floorplan/data/Floorplan";
|
|
5
|
-
export declare const GalleryHeroMain: React.FC<GalleryHeroProps>;
|
|
6
|
-
export interface GalleryHeroProps {
|
|
7
|
-
assetsToShow: Asset[];
|
|
8
|
-
virtualTour?: string;
|
|
9
|
-
isAvailableNow?: boolean;
|
|
10
|
-
isFirst: boolean;
|
|
11
|
-
toursCount: number;
|
|
12
|
-
webSpecials: WebSpecial[];
|
|
13
|
-
setCurrentView: (view: "photo" | "virtual tour" | "video tour") => void;
|
|
14
|
-
imageClickedHandler: (image: Asset) => void;
|
|
15
|
-
propertyId: string;
|
|
16
|
-
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.GalleryHeroMain = void 0;
|
|
7
|
-
var _react = _interopRequireDefault(require("react"));
|
|
8
|
-
require("./assets/GalleryHero.scss");
|
|
9
|
-
var _AssetService = require("../asset/service/AssetService");
|
|
10
|
-
var _muncherUi = require("@contentmunch/muncher-ui");
|
|
11
|
-
var _HeroImageCard = require("./HeroImageCard");
|
|
12
|
-
var _icon = _interopRequireDefault(require("../floorplan/card/assets/360-icon.png"));
|
|
13
|
-
var _videoIcon = _interopRequireDefault(require("../floorplan/card/assets/video-icon.png"));
|
|
14
|
-
var _SpecialOfferBadge = require("../specialOffer/SpecialOfferBadge");
|
|
15
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
-
const GalleryHeroMain = _ref => {
|
|
17
|
-
let {
|
|
18
|
-
virtualTour,
|
|
19
|
-
setCurrentView,
|
|
20
|
-
isAvailableNow,
|
|
21
|
-
webSpecials,
|
|
22
|
-
assetsToShow,
|
|
23
|
-
isFirst,
|
|
24
|
-
toursCount,
|
|
25
|
-
imageClickedHandler,
|
|
26
|
-
propertyId
|
|
27
|
-
} = _ref;
|
|
28
|
-
const cardImageIcon = i => virtualTour && i === 0 ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("img", {
|
|
29
|
-
src: _icon.default,
|
|
30
|
-
alt: "tour icon",
|
|
31
|
-
height: 50
|
|
32
|
-
}), /*#__PURE__*/_react.default.createElement("p", null, "Virtual Tour")) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("img", {
|
|
33
|
-
src: _videoIcon.default,
|
|
34
|
-
alt: "video icon",
|
|
35
|
-
height: 40
|
|
36
|
-
}), /*#__PURE__*/_react.default.createElement("p", null, "Video Tour"));
|
|
37
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
|
38
|
-
className: "div-gallery"
|
|
39
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
40
|
-
className: "badge--info"
|
|
41
|
-
}, isFirst && isAvailableNow ? /*#__PURE__*/_react.default.createElement(_muncherUi.Badge, {
|
|
42
|
-
variant: "secondary"
|
|
43
|
-
}, "Available Now") : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), isFirst && webSpecials.length > 0 ? /*#__PURE__*/_react.default.createElement(_SpecialOfferBadge.SpecialOfferBadge, null) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)), isFirst && webSpecials.length > 0 ? /*#__PURE__*/_react.default.createElement("div", {
|
|
44
|
-
className: "gallery--information"
|
|
45
|
-
}, /*#__PURE__*/_react.default.createElement("p", null, webSpecials[0].description)) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), /*#__PURE__*/_react.default.createElement("div", {
|
|
46
|
-
className: "gallery-hero-two-columns"
|
|
47
|
-
}, isFirst ? /*#__PURE__*/_react.default.createElement("div", {
|
|
48
|
-
className: assetsToShow.length < 2 ? "gallery-hero-one" : "gallery-hero-column-one"
|
|
49
|
-
}, assetsToShow.slice(0, 1).map(asset => /*#__PURE__*/_react.default.createElement("img", {
|
|
50
|
-
src: (0, _AssetService.assetUrlFrom)(asset.id, propertyId),
|
|
51
|
-
alt: asset.name,
|
|
52
|
-
key: asset.id,
|
|
53
|
-
className: "gallery-hero--image",
|
|
54
|
-
onClick: () => imageClickedHandler(asset)
|
|
55
|
-
}))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), assetsToShow.length > 1 ? /*#__PURE__*/_react.default.createElement("div", {
|
|
56
|
-
className: isFirst ? "gallery-hero-column-two" : "gallery-hero-column"
|
|
57
|
-
}, isFirst ? [...Array(toursCount)].map((x, i) => /*#__PURE__*/_react.default.createElement(_HeroImageCard.HeroImageCard, {
|
|
58
|
-
backgroundImage: (0, _AssetService.assetUrlFrom)(assetsToShow[i].id, propertyId),
|
|
59
|
-
key: "tour" + i,
|
|
60
|
-
onClick: () => {
|
|
61
|
-
virtualTour && i === 0 ? setCurrentView("virtual tour") : setCurrentView("video tour");
|
|
62
|
-
}
|
|
63
|
-
}, cardImageIcon(i))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), assetsToShow.slice(isFirst ? 1 : 0, assetsToShow.length).map(asset => /*#__PURE__*/_react.default.createElement("img", {
|
|
64
|
-
src: (0, _AssetService.assetUrlFrom)(asset.id, propertyId),
|
|
65
|
-
alt: asset.name,
|
|
66
|
-
key: asset.id,
|
|
67
|
-
className: "gallery-hero--image",
|
|
68
|
-
onClick: () => imageClickedHandler(asset)
|
|
69
|
-
}))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)));
|
|
70
|
-
};
|
|
71
|
-
exports.GalleryHeroMain = GalleryHeroMain;
|
|
72
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9Bc3NldFNlcnZpY2UiLCJfbXVuY2hlclVpIiwiX0hlcm9JbWFnZUNhcmQiLCJfaWNvbiIsIl92aWRlb0ljb24iLCJfU3BlY2lhbE9mZmVyQmFkZ2UiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkdhbGxlcnlIZXJvTWFpbiIsIl9yZWYiLCJ2aXJ0dWFsVG91ciIsInNldEN1cnJlbnRWaWV3IiwiaXNBdmFpbGFibGVOb3ciLCJ3ZWJTcGVjaWFscyIsImFzc2V0c1RvU2hvdyIsImlzRmlyc3QiLCJ0b3Vyc0NvdW50IiwiaW1hZ2VDbGlja2VkSGFuZGxlciIsInByb3BlcnR5SWQiLCJjYXJkSW1hZ2VJY29uIiwiaSIsImNyZWF0ZUVsZW1lbnQiLCJGcmFnbWVudCIsInNyYyIsInRvdXJJY29uIiwiYWx0IiwiaGVpZ2h0IiwidmlkZW9JY29uIiwiY2xhc3NOYW1lIiwiQmFkZ2UiLCJ2YXJpYW50IiwibGVuZ3RoIiwiU3BlY2lhbE9mZmVyQmFkZ2UiLCJkZXNjcmlwdGlvbiIsInNsaWNlIiwibWFwIiwiYXNzZXQiLCJhc3NldFVybEZyb20iLCJpZCIsIm5hbWUiLCJrZXkiLCJvbkNsaWNrIiwiQXJyYXkiLCJ4IiwiSGVyb0ltYWdlQ2FyZCIsImJhY2tncm91bmRJbWFnZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2FsbGVyeS9HYWxsZXJ5SGVyb01haW4udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCAnLi9hc3NldHMvR2FsbGVyeUhlcm8uc2Nzcyc7XG5pbXBvcnQge0Fzc2V0fSBmcm9tIFwiLi4vYXNzZXQvZGF0YS9Bc3NldFwiO1xuaW1wb3J0IHthc3NldFVybEZyb219IGZyb20gXCIuLi9hc3NldC9zZXJ2aWNlL0Fzc2V0U2VydmljZVwiO1xuaW1wb3J0IHtCYWRnZX0gZnJvbSBcIkBjb250ZW50bXVuY2gvbXVuY2hlci11aVwiO1xuaW1wb3J0IHtIZXJvSW1hZ2VDYXJkfSBmcm9tIFwiLi9IZXJvSW1hZ2VDYXJkXCI7XG5pbXBvcnQgdG91ckljb24gZnJvbSBcIi4uL2Zsb29ycGxhbi9jYXJkL2Fzc2V0cy8zNjAtaWNvbi5wbmdcIjtcbmltcG9ydCB2aWRlb0ljb24gZnJvbSBcIi4uL2Zsb29ycGxhbi9jYXJkL2Fzc2V0cy92aWRlby1pY29uLnBuZ1wiO1xuaW1wb3J0IHtXZWJTcGVjaWFsfSBmcm9tIFwiLi4vZmxvb3JwbGFuL2RhdGEvRmxvb3JwbGFuXCI7XG5pbXBvcnQge1NwZWNpYWxPZmZlckJhZGdlfSBmcm9tIFwiLi4vc3BlY2lhbE9mZmVyL1NwZWNpYWxPZmZlckJhZGdlXCI7XG5cbmV4cG9ydCBjb25zdCBHYWxsZXJ5SGVyb01haW46IFJlYWN0LkZDPEdhbGxlcnlIZXJvUHJvcHM+ID0gKFxuICAgIHtcbiAgICAgICAgdmlydHVhbFRvdXIsIHNldEN1cnJlbnRWaWV3LCBpc0F2YWlsYWJsZU5vdywgd2ViU3BlY2lhbHMsXG4gICAgICAgIGFzc2V0c1RvU2hvdywgaXNGaXJzdCwgdG91cnNDb3VudCwgaW1hZ2VDbGlja2VkSGFuZGxlciwgcHJvcGVydHlJZFxuICAgIH0pID0+IHtcblxuICAgIGNvbnN0IGNhcmRJbWFnZUljb24gPSAoaTogbnVtYmVyKSA9PiB2aXJ0dWFsVG91ciAmJiBpID09PSAwID9cbiAgICAgICAgPD5cbiAgICAgICAgICAgIDxpbWcgc3JjPXt0b3VySWNvbn0gYWx0PVwidG91ciBpY29uXCIgaGVpZ2h0PXs1MH0vPlxuICAgICAgICAgICAgPHA+VmlydHVhbCBUb3VyPC9wPlxuICAgICAgICA8Lz4gOlxuICAgICAgICA8PlxuICAgICAgICAgICAgPGltZyBzcmM9e3ZpZGVvSWNvbn0gYWx0PVwidmlkZW8gaWNvblwiIGhlaWdodD17NDB9Lz5cbiAgICAgICAgICAgIDxwPlZpZGVvIFRvdXI8L3A+XG4gICAgICAgIDwvPlxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkaXYtZ2FsbGVyeVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiYWRnZS0taW5mb1wiPlxuICAgICAgICAgICAgICAgIHtpc0ZpcnN0ICYmIGlzQXZhaWxhYmxlTm93ID9cbiAgICAgICAgICAgICAgICAgICAgPEJhZGdlIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIj5BdmFpbGFibGUgTm93PC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgOiA8PjwvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB7aXNGaXJzdCAmJiB3ZWJTcGVjaWFscy5sZW5ndGggPiAwID9cbiAgICAgICAgICAgICAgICAgICAgPFNwZWNpYWxPZmZlckJhZGdlLz4gOiA8PjwvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge2lzRmlyc3QgJiYgd2ViU3BlY2lhbHMubGVuZ3RoID4gMCA/XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnYWxsZXJ5LS1pbmZvcm1hdGlvblwiPjxwPnt3ZWJTcGVjaWFsc1swXS5kZXNjcmlwdGlvbn08L3A+PC9kaXY+IDogPD48Lz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnYWxsZXJ5LWhlcm8tdHdvLWNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICB7aXNGaXJzdCA/XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YXNzZXRzVG9TaG93Lmxlbmd0aCA8IDIgPyBcImdhbGxlcnktaGVyby1vbmVcIiA6IFwiZ2FsbGVyeS1oZXJvLWNvbHVtbi1vbmVcIn0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRzVG9TaG93LnNsaWNlKDAsIDEpLm1hcCgoYXNzZXQpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPXthc3NldFVybEZyb20oYXNzZXQuaWQsIHByb3BlcnR5SWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD17YXNzZXQubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Fzc2V0LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImdhbGxlcnktaGVyby0taW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGltYWdlQ2xpY2tlZEhhbmRsZXIoYXNzZXQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IDogPD48Lz59XG4gICAgICAgICAgICAgICAge2Fzc2V0c1RvU2hvdy5sZW5ndGggPiAxID9cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2lzRmlyc3QgPyBcImdhbGxlcnktaGVyby1jb2x1bW4tdHdvXCIgOiBcImdhbGxlcnktaGVyby1jb2x1bW5cIn0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7aXNGaXJzdCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWy4uLkFycmF5KHRvdXJzQ291bnQpXS5tYXAoKHgsIGkpID0+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhlcm9JbWFnZUNhcmQgYmFja2dyb3VuZEltYWdlPXthc3NldFVybEZyb20oYXNzZXRzVG9TaG93W2ldLmlkLCBwcm9wZXJ0eUlkKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtcInRvdXJcIiArIGl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpcnR1YWxUb3VyICYmIGkgPT09IDAgPyBzZXRDdXJyZW50VmlldyhcInZpcnR1YWwgdG91clwiKSA6IHNldEN1cnJlbnRWaWV3KFwidmlkZW8gdG91clwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2FyZEltYWdlSWNvbihpKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IZXJvSW1hZ2VDYXJkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiA8PjwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRzVG9TaG93LnNsaWNlKGlzRmlyc3QgPyAxIDogMCwgYXNzZXRzVG9TaG93Lmxlbmd0aCkubWFwKChhc3NldCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9e2Fzc2V0VXJsRnJvbShhc3NldC5pZCwgcHJvcGVydHlJZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PXthc3NldC5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YXNzZXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZ2FsbGVyeS1oZXJvLS1pbWFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaW1hZ2VDbGlja2VkSGFuZGxlcihhc3NldCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gOiA8PjwvPlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59O1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgR2FsbGVyeUhlcm9Qcm9wcyB7XG5cbiAgICBhc3NldHNUb1Nob3c6IEFzc2V0W107XG4gICAgdmlydHVhbFRvdXI/OiBzdHJpbmc7XG4gICAgaXNBdmFpbGFibGVOb3c/OiBib29sZWFuO1xuICAgIGlzRmlyc3Q6IGJvb2xlYW47XG4gICAgdG91cnNDb3VudDogbnVtYmVyO1xuICAgIHdlYlNwZWNpYWxzOiBXZWJTcGVjaWFsW107XG4gICAgc2V0Q3VycmVudFZpZXc6ICh2aWV3OiBcInBob3RvXCIgfCBcInZpcnR1YWwgdG91clwiIHwgXCJ2aWRlbyB0b3VyXCIpID0+IHZvaWQ7XG4gICAgaW1hZ2VDbGlja2VkSGFuZGxlcjogKGltYWdlOiBBc3NldCkgPT4gdm9pZDtcbiAgICBwcm9wZXJ0eUlkOiBzdHJpbmc7XG5cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0FBLE9BQUE7QUFFQSxJQUFBQyxhQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxjQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBTSxrQkFBQSxHQUFBTixPQUFBO0FBQW9FLFNBQUFELHVCQUFBUSxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUs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
|