@realsee/dnalogel 2.3.7-4 → 2.3.7-5
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/dist/PanoMeasurePlugin/Modules/Magnifier.d.ts +29 -16
- package/dist/index.cjs.js +3 -3
- package/dist/index.js +374 -323
- package/dist/index.umd.js +3 -3
- package/docs/assets/search.js +1 -1
- package/docs/classes/CSS3DRender.html +31 -31
- package/docs/classes/CruisePluginController.html +24 -24
- package/docs/classes/Magnifier.html +90 -40
- package/docs/classes/ModelRoomLabelController.html +11 -11
- package/docs/classes/Object3DHelperController.html +24 -24
- package/docs/classes/PaintBrush.html +15 -15
- package/docs/classes/PanoMeasurePluginLine.html +23 -23
- package/docs/classes/PanoMeasurePluginModel.html +22 -22
- package/docs/classes/PanoMeasurePluginPoint.html +14 -14
- package/docs/classes/PanoMeasurePluginPolyline.html +26 -26
- package/docs/classes/PanoTagPluginController.html +39 -39
- package/docs/classes/Util.BetterTween.html +8 -8
- package/docs/classes/Util.FivePointSelector.html +12 -12
- package/docs/classes/Util.Interval.html +12 -12
- package/docs/classes/Util.Magnifier.html +17 -17
- package/docs/classes/Util.PointDomHelper.html +11 -11
- package/docs/classes/Util.PointHelper.html +11 -11
- package/docs/classes/Util.Rectangle.html +13 -13
- package/docs/enums/CameraMovementEffect.html +7 -7
- package/docs/enums/ContentType.html +12 -12
- package/docs/enums/DIRECTION.html +9 -9
- package/docs/enums/DISPLAY_STRATEGY_TYPE.html +9 -9
- package/docs/enums/DimensionType.html +7 -7
- package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +8 -8
- package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +9 -9
- package/docs/enums/LinkType.html +7 -7
- package/docs/enums/PaintBrushTypeEnum.html +8 -8
- package/docs/enums/PointType.html +7 -7
- package/docs/enums/Rotation.html +8 -8
- package/docs/functions/CSS3DRenderPlugin.html +4 -4
- package/docs/functions/CameraMovementPlugin.html +4 -4
- package/docs/functions/CruisePlugin.html +4 -4
- package/docs/functions/GuideLinePlugin.html +5 -5
- package/docs/functions/ItemLabelPlugin.html +4 -4
- package/docs/functions/MapviewFloorplanPlugin.html +4 -4
- package/docs/functions/ModelChassisCompassPlugin.html +4 -4
- package/docs/functions/ModelEntryDoorGuidePlugin.html +4 -4
- package/docs/functions/ModelFloorplanPlugin.html +4 -4
- package/docs/functions/ModelItemLabelPlugin.html +4 -4
- package/docs/functions/ModelRoomLabelPlugin.html +4 -4
- package/docs/functions/ModelTVVideoPlugin.html +4 -4
- package/docs/functions/ModelViewPlugin.html +4 -4
- package/docs/functions/Object3DHelperPlugin.html +4 -4
- package/docs/functions/PanoCompassPlugin.html +4 -4
- package/docs/functions/PanoCursorRaycasterPlugin.html +4 -4
- package/docs/functions/PanoDoorLabelPlugin.html +4 -4
- package/docs/functions/PanoFloorplanRadarPlugin.html +4 -4
- package/docs/functions/PanoMeasurePlugin.html +4 -4
- package/docs/functions/PanoRulerPlugin.html +4 -4
- package/docs/functions/PanoRulerProPlugin.html +4 -4
- package/docs/functions/PanoSpatialTagPlugin.html +4 -4
- package/docs/functions/PanoTagPlugin.html +4 -4
- package/docs/functions/TopviewFloorplanPlugin.html +4 -4
- package/docs/functions/Util.getCoordsFromClient.html +5 -5
- package/docs/functions/Util.getCoordsFromElement.html +5 -5
- package/docs/functions/Util.getFrameTime.html +5 -5
- package/docs/functions/Util.getIntersectFromRelativePosition.html +5 -5
- package/docs/functions/Util.getRaycasterFromFivePointer.html +5 -5
- package/docs/functions/Util.isNil.html +5 -5
- package/docs/functions/Util.nextFrame.html +5 -5
- package/docs/functions/Util.notNil.html +5 -5
- package/docs/functions/Util.requestAnimationFrameInterval.html +5 -5
- package/docs/functions/Util.tweenProgress.html +5 -5
- package/docs/functions/pluginFlag.html +5 -5
- package/docs/index.html +4 -4
- package/docs/interfaces/CSS3DRenderPluginEventMap.html +11 -11
- package/docs/interfaces/CSS3DRenderPluginState.html +8 -8
- package/docs/interfaces/CameraMovementPluginExportType.html +7 -7
- package/docs/interfaces/ContentTypeMap.html +12 -12
- package/docs/interfaces/FloorplanBounding.html +8 -8
- package/docs/interfaces/FloorplanData.html +10 -10
- package/docs/interfaces/FloorplanEntrance.html +11 -11
- package/docs/interfaces/FloorplanExtraObject.html +10 -10
- package/docs/interfaces/FloorplanExtraObject3D.html +8 -8
- package/docs/interfaces/FloorplanFloorData.html +9 -9
- package/docs/interfaces/FloorplanImagePosition.html +7 -7
- package/docs/interfaces/FloorplanObserver.html +9 -9
- package/docs/interfaces/FloorplanOutlineItem.html +9 -9
- package/docs/interfaces/FloorplanPosition.html +7 -7
- package/docs/interfaces/FloorplanRoomItem.html +13 -13
- package/docs/interfaces/FloorplanRoomLabelItem.html +7 -7
- package/docs/interfaces/FloorplanServerBounding.html +8 -8
- package/docs/interfaces/FloorplanServerComputedData.html +10 -10
- package/docs/interfaces/FloorplanServerData.html +7 -7
- package/docs/interfaces/FloorplanServerDoorItem.html +10 -10
- package/docs/interfaces/FloorplanServerDoorPosition.html +8 -8
- package/docs/interfaces/FloorplanServerEntrance.html +11 -11
- package/docs/interfaces/FloorplanServerFloorData.html +9 -9
- package/docs/interfaces/FloorplanServerImagePosition.html +7 -7
- package/docs/interfaces/FloorplanServerObserver.html +9 -9
- package/docs/interfaces/FloorplanServerOutlineItem.html +9 -9
- package/docs/interfaces/FloorplanServerPosition.html +7 -7
- package/docs/interfaces/FloorplanServerRoomItem.html +14 -14
- package/docs/interfaces/FloorplanServerRoomLabelItem.html +7 -7
- package/docs/interfaces/ItemLabelPluginData.html +6 -6
- package/docs/interfaces/ItemLabelPluginExportReturnsType.html +11 -11
- package/docs/interfaces/ItemLabelPluginParametersType.html +9 -9
- package/docs/interfaces/ModelChassisCompassPluginData.html +7 -7
- package/docs/interfaces/ModelChassisCompassPluginExportType.html +8 -8
- package/docs/interfaces/ModelChassisCompassPluginParameterType.html +7 -7
- package/docs/interfaces/ModelEntryDoorGuidePluginData.html +8 -8
- package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +8 -8
- package/docs/interfaces/ModelItemLabelPluginData.html +6 -6
- package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +11 -11
- package/docs/interfaces/ModelItemLabelPluginParametersType.html +7 -7
- package/docs/interfaces/ModelRoomLabelPluginData.html +6 -6
- package/docs/interfaces/ModelTVVideoPluginData.html +9 -9
- package/docs/interfaces/ModelTVVideoPluginExportType.html +8 -8
- package/docs/interfaces/ModelTVVideoPluginParameterType.html +6 -6
- package/docs/interfaces/ModelViewPluginExportType.html +11 -11
- package/docs/interfaces/Object3DHelperState.html +8 -8
- package/docs/interfaces/PaintBrushAction.html +12 -12
- package/docs/interfaces/PaintBrushConfigs.html +12 -12
- package/docs/interfaces/PaintBrushState.html +10 -10
- package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +10 -10
- package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +5 -5
- package/docs/interfaces/PanoMeasureParameterType.html +12 -12
- package/docs/interfaces/PanoMeasurePluginLineJson.html +8 -8
- package/docs/interfaces/PanoMeasurePluginOpenParameter.html +7 -7
- package/docs/interfaces/PanoMeasurePluginPointJson.html +7 -7
- package/docs/interfaces/PanoMeasurePluginPolylineJson.html +8 -8
- package/docs/interfaces/PanoRulerPluginExportType.html +10 -10
- package/docs/interfaces/PanoRulerPluginOptions.html +7 -7
- package/docs/interfaces/PanoRulerPluginParameterType.html +8 -8
- package/docs/interfaces/PanoRulerProPluginExportType.html +9 -9
- package/docs/interfaces/PanoRulerProPluginOptions.html +7 -7
- package/docs/interfaces/PanoRulerProPluginParameterType.html +7 -7
- package/docs/interfaces/PanoRulerProPluginState.html +8 -8
- package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +5 -5
- package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +5 -5
- package/docs/interfaces/PanoSpatialTagPluginData.html +11 -11
- package/docs/interfaces/PanoSpatialTagPluginDataElement.html +10 -10
- package/docs/interfaces/PanoSpatialTagPluginExportType.html +13 -13
- package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +10 -10
- package/docs/interfaces/PanoSpatialTagPluginParameterType.html +13 -13
- package/docs/interfaces/PanoSpatialTagPluginPointElement.html +11 -11
- package/docs/interfaces/PanoSpatialTagPluginTagElement.html +10 -10
- package/docs/interfaces/Point.html +8 -8
- package/docs/interfaces/Room.html +9 -9
- package/docs/interfaces/RoomInfo.html +7 -7
- package/docs/interfaces/RoomLabel.html +14 -14
- package/docs/interfaces/RoomRules.html +5 -5
- package/docs/interfaces/Rooms.html +5 -5
- package/docs/interfaces/Scissor.html +9 -9
- package/docs/interfaces/TagConfig.html +10 -10
- package/docs/interfaces/Tags.html +9 -9
- package/docs/interfaces/Util.MagnifierParameter.html +11 -11
- package/docs/interfaces/Util.MouseGroupParameter.html +8 -8
- package/docs/modules/Util.html +5 -5
- package/docs/modules.html +4 -4
- package/docs/types/ArrayPosition.html +5 -5
- package/docs/types/CSS3DRenderExportType.html +5 -5
- package/docs/types/CSS3DRenderPluginExportType.html +5 -5
- package/docs/types/CSS3DRenderPluginParameterType.html +5 -5
- package/docs/types/Color.html +5 -5
- package/docs/types/ContentTypeConfigKey.html +5 -5
- package/docs/types/ContentTypeConfigKeyArray.html +5 -5
- package/docs/types/Create3DDomContainerReturnType.html +5 -5
- package/docs/types/Create3DElementReturnType.html +5 -5
- package/docs/types/CruisePluginExportType.html +5 -5
- package/docs/types/Direction-1.html +5 -5
- package/docs/types/Direction4.html +5 -5
- package/docs/types/FloorplanRuleLabels.html +5 -5
- package/docs/types/FloorplanServerRuleLabels.html +5 -5
- package/docs/types/GuideLinePluginExportType.html +5 -5
- package/docs/types/HelperEventMap.html +5 -5
- package/docs/types/MapviewFloorplanPluginParameterType.html +5 -5
- package/docs/types/MapviewFloorplanPluginReturnType.html +5 -5
- package/docs/types/MediaData.html +5 -5
- package/docs/types/ModelEntryDoorGuidePluginParameterType.html +5 -5
- package/docs/types/ModelFloorplanPluginParameterType.html +5 -5
- package/docs/types/ModelFloorplanPluginReturnType.html +5 -5
- package/docs/types/ModelRoomLabelPluginParameters.html +5 -5
- package/docs/types/ModelRoomLabelPluginReturnType.html +5 -5
- package/docs/types/MoveArgs.html +5 -5
- package/docs/types/MoveOpts.html +5 -5
- package/docs/types/Object3DHelperEventMap.html +5 -5
- package/docs/types/ObjectFit.html +5 -5
- package/docs/types/PaintBrushEventMap.html +5 -5
- package/docs/types/PanoCompassPluginData.html +5 -5
- package/docs/types/PanoCompassPluginExportType.html +5 -5
- package/docs/types/PanoCompassPluginParameterType.html +5 -5
- package/docs/types/PanoFloorplanRadarPluginParameterType.html +5 -5
- package/docs/types/PanoFloorplanRadarPluginReturnType.html +5 -5
- package/docs/types/PanoMeasurePluginEvent.html +5 -5
- package/docs/types/PanoMeasureReturnType.html +5 -5
- package/docs/types/PanoSpatialTagPluginId.html +5 -5
- package/docs/types/PanoTagPluginExportInterface.html +5 -5
- package/docs/types/PanoTagPluginParamsInterface.html +5 -5
- package/docs/types/PlaneTag.html +5 -5
- package/docs/types/PointTag.html +5 -5
- package/docs/types/Position.html +5 -5
- package/docs/types/RotateArgs.html +5 -5
- package/docs/types/RotateOpts.html +5 -5
- package/docs/types/RuleLabelsKey.html +5 -5
- package/docs/types/RuleLabelsValue.html +5 -5
- package/docs/types/Tag.html +5 -5
- package/docs/types/Tag2D.html +5 -5
- package/docs/types/Tag3D.html +5 -5
- package/docs/types/TagId.html +5 -5
- package/docs/types/TopviewFloorplanPluginParameterType.html +5 -5
- package/docs/types/TopviewFloorplanPluginReturnType.html +5 -5
- package/docs/variables/FLOOR_TYPE_MAP.html +5 -5
- package/docs/variables/PLUGIN.html +5 -5
- package/docs/variables/ROOM_FETILE_TYPE_MAP.html +5 -5
- package/docs/variables/ROOM_TYPE_MAP.html +5 -5
- package/docs/variables/VERSION.html +5 -5
- package/docs/variables/itemLabelPluginServerParams.html +5 -5
- package/docs/variables/modelItemLabelPluginServerParams.html +5 -5
- package/docs/variables/modelRoomLabelPluginServerParams.html +5 -5
- package/libs/PanoMeasurePlugin/Controller/BaseController.js +5 -5
- package/libs/PanoMeasurePlugin/Controller/EditController.js +4 -4
- package/libs/PanoMeasurePlugin/Controller/MixedController.js +19 -19
- package/libs/PanoMeasurePlugin/Controller/WatchController.js +2 -2
- package/libs/PanoMeasurePlugin/Modules/Magnifier.d.ts +29 -16
- package/libs/PanoMeasurePlugin/Modules/Magnifier.js +113 -62
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -94,7 +94,7 @@ function En(i) {
|
|
|
94
94
|
function Rl(i) {
|
|
95
95
|
i[an] || delete i[an];
|
|
96
96
|
}
|
|
97
|
-
class
|
|
97
|
+
class Ol {
|
|
98
98
|
hasListener(t) {
|
|
99
99
|
const e = En(this);
|
|
100
100
|
return e && e[t] && e[t].length > 0;
|
|
@@ -134,10 +134,10 @@ class Hl {
|
|
|
134
134
|
function dt() {
|
|
135
135
|
return ((1 + Math.random()) * 65536 | 0).toString(16).substring(1);
|
|
136
136
|
}
|
|
137
|
-
function
|
|
137
|
+
function He() {
|
|
138
138
|
return (dt() + dt() + "-" + dt() + "-4" + dt().substr(0, 3) + "-" + dt() + "-" + dt() + dt() + dt()).toLowerCase();
|
|
139
139
|
}
|
|
140
|
-
const
|
|
140
|
+
const Hl = `
|
|
141
141
|
<style type="text/css">
|
|
142
142
|
|
|
143
143
|
#_gl_paintBrush {
|
|
@@ -238,14 +238,14 @@ transition: all 500ms;
|
|
|
238
238
|
|
|
239
239
|
</style>
|
|
240
240
|
`;
|
|
241
|
-
class Fl extends
|
|
241
|
+
class Fl extends Ol {
|
|
242
242
|
constructor(e) {
|
|
243
243
|
super();
|
|
244
244
|
f(this, "configs");
|
|
245
245
|
f(this, "clientWidth");
|
|
246
246
|
f(this, "clientHeight");
|
|
247
247
|
f(this, "ready", !1);
|
|
248
|
-
f(this, "uuid",
|
|
248
|
+
f(this, "uuid", He());
|
|
249
249
|
f(this, "tween");
|
|
250
250
|
f(this, "tweening", !1);
|
|
251
251
|
f(this, "container");
|
|
@@ -274,7 +274,7 @@ class Fl extends Hl {
|
|
|
274
274
|
const e = document.createElement("div");
|
|
275
275
|
e.id = "_gl_paintBrush", document.body.appendChild(e), this.container = e;
|
|
276
276
|
}
|
|
277
|
-
return this.container.innerHTML =
|
|
277
|
+
return this.container.innerHTML = Hl, this.container;
|
|
278
278
|
}
|
|
279
279
|
initCanvas(e) {
|
|
280
280
|
const n = document.createElement("canvas");
|
|
@@ -599,20 +599,20 @@ const W0 = (i, t) => {
|
|
|
599
599
|
if (n)
|
|
600
600
|
return;
|
|
601
601
|
h = L(i.model, c.fov, c.aspect), u = i.model.bounding.getCenter(new E.Vector3()), l.remove(d), d = T(i.model), l.add(d), n = !0, S();
|
|
602
|
-
function I(
|
|
603
|
-
const N =
|
|
602
|
+
function I(H) {
|
|
603
|
+
const N = H.clone();
|
|
604
604
|
return N.uniforms.modelAlpha.value = 1, N.uniforms.map.value && (N.uniforms.map.value.needsUpdate = !0), N;
|
|
605
605
|
}
|
|
606
|
-
function T(
|
|
607
|
-
if (
|
|
608
|
-
const N =
|
|
606
|
+
function T(H) {
|
|
607
|
+
if (H instanceof E.Mesh) {
|
|
608
|
+
const N = H.geometry, Z = Array.isArray(H.material) ? H.material.map(I) : I(H.material);
|
|
609
609
|
return new E.Mesh(N, Z);
|
|
610
|
-
} else if (
|
|
610
|
+
} else if (H instanceof E.Group) {
|
|
611
611
|
const N = new E.Group();
|
|
612
|
-
return
|
|
612
|
+
return H.children.forEach((Z) => N.add(T(Z))), N;
|
|
613
613
|
} else {
|
|
614
614
|
const N = new E.Object3D();
|
|
615
|
-
return
|
|
615
|
+
return H.children.forEach((Z) => N.add(T(Z))), N;
|
|
616
616
|
}
|
|
617
617
|
}
|
|
618
618
|
}, m = () => {
|
|
@@ -620,7 +620,7 @@ const W0 = (i, t) => {
|
|
|
620
620
|
return s || (s = new E.WebGLRenderer({ antialias: !1, alpha: !0 }), s.setPixelRatio(i.renderer.getPixelRatio()), s.outputEncoding = E.sRGBEncoding, s.setClearColor(1579548, 0), s.autoClear = !0), s;
|
|
621
621
|
}, g = () => {
|
|
622
622
|
d.traverse((I) => {
|
|
623
|
-
I instanceof E.Mesh && [].concat(I.material).forEach((
|
|
623
|
+
I instanceof E.Mesh && [].concat(I.material).forEach((H) => H.dispose());
|
|
624
624
|
}), l.remove(d), d = new E.Object3D(), l.add(d), n = !1, S();
|
|
625
625
|
}, v = () => {
|
|
626
626
|
!e || n || p();
|
|
@@ -629,29 +629,29 @@ const W0 = (i, t) => {
|
|
|
629
629
|
}, w = () => {
|
|
630
630
|
!e || (l.remove(d), o = !0, k(), e = !1);
|
|
631
631
|
}, y = (I, T = {}) => {
|
|
632
|
-
const
|
|
633
|
-
if (!
|
|
632
|
+
const H = m();
|
|
633
|
+
if (!H)
|
|
634
634
|
return;
|
|
635
|
-
I.appendChild(
|
|
635
|
+
I.appendChild(H.domElement), x(T);
|
|
636
636
|
const N = window.getComputedStyle(I).position;
|
|
637
637
|
N !== "relative" && N !== "absolute" && N !== "fixed" && N !== "sticky" && (I.style.position = "relative");
|
|
638
638
|
}, x = (I = {}) => {
|
|
639
639
|
if (!s)
|
|
640
640
|
return;
|
|
641
|
-
const
|
|
642
|
-
if (
|
|
643
|
-
const { width: N =
|
|
641
|
+
const H = s.domElement.parentNode;
|
|
642
|
+
if (H != null && H.nodeName) {
|
|
643
|
+
const { width: N = H.offsetWidth, height: Z = H.offsetHeight } = I;
|
|
644
644
|
s.setSize(N, Z), c.aspect = N / Z, c.updateProjectionMatrix();
|
|
645
645
|
}
|
|
646
646
|
S();
|
|
647
647
|
};
|
|
648
|
-
function L(I, T,
|
|
648
|
+
function L(I, T, H) {
|
|
649
649
|
const N = I.bounding, Z = Math.pow(
|
|
650
650
|
Math.pow(N.max.x - N.min.x + 1, 2) + Math.pow(N.max.y - N.min.y + 1, 2) + Math.pow(N.max.z - N.min.z + 1, 2),
|
|
651
651
|
1 / 2
|
|
652
652
|
);
|
|
653
653
|
let X = Z / 2 / Math.tan(Math.PI * T / 360);
|
|
654
|
-
return
|
|
654
|
+
return H < 1 && (X = X / H), isNaN(X) ? Z : X;
|
|
655
655
|
}
|
|
656
656
|
function C(I) {
|
|
657
657
|
return i.work.observers[I].standingPosition.clone();
|
|
@@ -665,12 +665,12 @@ const W0 = (i, t) => {
|
|
|
665
665
|
!e || o !== !0 || !s || !s.domElement.parentNode || s.domElement.parentNode.offsetWidth === 0 || (s.render(l, c), o = !1);
|
|
666
666
|
}, F = () => {
|
|
667
667
|
s && s.dispose(), s = null;
|
|
668
|
-
},
|
|
668
|
+
}, O = (I) => {
|
|
669
669
|
Object.assign(a, I), S();
|
|
670
670
|
}, G = () => ({
|
|
671
671
|
enabled: e
|
|
672
672
|
});
|
|
673
|
-
return Object.assign(window, { camera: c }), i.on("modelLoaded", v), i.on("modelWillLoad", g), i.on("cameraDirectionUpdate", S), i.on("dispose", F), i.on("renderFrame", k), i.on("cameraPositionUpdate", S), { appendTo: y, refresh: x, changeConfigs:
|
|
673
|
+
return Object.assign(window, { camera: c }), i.on("modelLoaded", v), i.on("modelWillLoad", g), i.on("cameraDirectionUpdate", S), i.on("dispose", F), i.on("renderFrame", k), i.on("cameraPositionUpdate", S), { appendTo: y, refresh: x, changeConfigs: O, enable: A, disable: w, getCurrentState: G };
|
|
674
674
|
};
|
|
675
675
|
function gt(...i) {
|
|
676
676
|
const t = [];
|
|
@@ -1748,7 +1748,7 @@ function M(i, t, e, n) {
|
|
|
1748
1748
|
n && n();
|
|
1749
1749
|
}
|
|
1750
1750
|
const fa = { duration: 0 };
|
|
1751
|
-
function
|
|
1751
|
+
function Ot(i, t, e) {
|
|
1752
1752
|
let n = t(i, e), o = !1, s, r, a = 0;
|
|
1753
1753
|
function l() {
|
|
1754
1754
|
s && Ti(i, s);
|
|
@@ -2080,7 +2080,7 @@ function Ic(i, t, e) {
|
|
|
2080
2080
|
const S = y.get(C.id);
|
|
2081
2081
|
if (S)
|
|
2082
2082
|
return S;
|
|
2083
|
-
const { x: k, y: F, z:
|
|
2083
|
+
const { x: k, y: F, z: O } = C.position, G = new _(k, F, O).clone().distanceTo(o.camera.position);
|
|
2084
2084
|
return y.set(C.id, G), G;
|
|
2085
2085
|
}
|
|
2086
2086
|
return s.map((C) => {
|
|
@@ -2330,7 +2330,7 @@ function Rc(i, t, e) {
|
|
|
2330
2330
|
s
|
|
2331
2331
|
];
|
|
2332
2332
|
}
|
|
2333
|
-
class
|
|
2333
|
+
class Oc extends oe {
|
|
2334
2334
|
constructor(t) {
|
|
2335
2335
|
super(), ie(
|
|
2336
2336
|
this,
|
|
@@ -2348,7 +2348,7 @@ class Hc extends oe {
|
|
|
2348
2348
|
);
|
|
2349
2349
|
}
|
|
2350
2350
|
}
|
|
2351
|
-
const
|
|
2351
|
+
const Hc = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArUAAAB7CAMAAABdA4ieAAAC91BMVEUAAACOpP/H0P+yxP/a4/+asv/W3/+/z/+cs//S3f+mu//Q2//5+v/H1P/d5f/l6//y9f++zf/i6f+ww/+ovP/7/P/u8v/N2f+Mp//q7/+4yf+uwf+Wr/+7y/+1xv+Ho//x9P+9zP+2x/+swP+gt/+Oqf/Y4v/r8P/l7P/b4//F0/+juf+Zsv+XsP+Trf/p7v97mv9wj/+kuv+ftf/x9P92lf/3+f/I1f+5yv+Eof98m//8/f/4+f90lf+9zf/j6f/T3f/L1/+Bnv/6+/+SrP/m7P/f5v/O2v/L2P/E0v/Az//+///s8P/e5v+rv/+pvv+Anv+qvv+Pqv+Kpv+CoP93l/9xlP/z9v/p7v90lf9uj//P2//v8//o7f/k6v/K1v+6yv9rjv98nv/E0v/9/v/09//h6P/X4f9pjP/9/f/N2f/K1v/C0f+Ho/99nP/1+P9sj//6+//u8/+iuP/u8//g6P/U3v+3x/+0xv+etf+Vrv9pjf/B0P9ukf+ht/+Vr/94mP/G0/+8zP+2x//+/v/09v/W4f9ojv/c5P+xxP/d5v+xw/+vwv+Jo//g6P+nvP+SrP/R3P/1+f/W3//U3//C0P+Jp/9nh/+Kpv+Fov/Y4f/J1/+Pqf+rv/+Oqv+Oqv+muv+twP/f5//t8P97mf/h5/+twP+kuf/L2P+juP+Ipf+huP+Pqf/d5v+zxf+cs/+Zsf+wwv/V3v+8zP+Go/+zxP+GpP/T3f/r8P/u8v/o7f/d5P/m7P/H1P/w9P/D0f+uwf/Z4v/F0v/09//D0v/v8//s8v/d5P/Y4f/s8P+etv/X4f+gt/+ovf+bsv+xw/+Vr//j6v+1x//J1v+4yf/r8P+yxf/T3f/B0f+Fo//09//W4P/h6P/L1v/i6f/x9f/t8v/G0/+uwf/z9f/7/P/n7f/z9v/T3f+4yf/J1v/z9f/w8//q7v/O2v/8/f/5+v/y9f/w8//g6P/z9v+/zv+5yf+9zf/5+v/Q3P/B0P/u8f/R2//////LSJnaAAAA/HRSTlMAAwGMx2jAn2u7ebn0q8zX7J3TiHz45bRS35SFYZmPSembkYNwVMXh2cmodWVjXN43DHZu6gfyrJZGOvrzLAbVvbBB91raz7aypqH+4s6Bfj9/Vk9EMint3C8gt+fc1q+XGAml/O/SxBz7s66kSz3wI/bjc+fQvpOObV8VoyZyXjSpmgv97sMPyorNiYZN0XpYuvHCv6JNEhEWw61YgCUdGBIP5CIgHypaUEU6NS9JQy8lGlY6NCuMfVtPSzspJoRxcExBNTMUyn9zaWRfVkk9Oad9emtkY0RBMLGsnJaQj4ZmXVHhsaKbeW9owb466dnVy7mYj45wyaGV3bdGzuNnAAASkklEQVR42uyaS0iUURiGTUQZ1MaMURSEbOFt4ybGQClFHO9rBS8F3nAURHG0hZvyQrgQRsfNuKmRCTcGGaEzThNqMyouwswKNTVMLe/a/bLo+845/5z/dzIiumj971I3gz6+Puc9x0POT6bRaXfYrJa18YHFhYXXKzMz6+/fb2+/ePFia8uvWlXelFkcr6pO2NqCr2xv77xfn5lZWXm9sDgwvmZZGnHYzaZjHnLk/PaYzL0jS9Pji6+XN3Z3gvJPnTkTEJCT01xSUtWuVick+PlVJ6tUqvj44uLipkxIU3F5fLxKlZxc7efnl6BWt1eVlDTn5AQEnDl16lR+be2n3fWZlYWBNcugze485yFHzq/Kub7eEcv44tzyekpsbEhIZGRWVk1NUFBtPqU2gFGbANRWVycnI7XlCO0XQm25mFp1VRWjFrDNz68NCqqpyYqMDAmJjc3NzQ3cmJwfmLba7CZPDzlyfg5Wh3V6YG559HyhUhkVlZJSUJDLqK3pDkJqoS8ZtVWEWiCTUltejl37BaCVdG2Cul1MLUIb1M2pLShIiYpSKpWF58+37U3Oj1ue2E0ecuT8EK1mm3VoYG4vW6MrLQ0MDDwvUIvQ8q6tBWqZIeRQQ+DU8q51NwQxtbVAbRajNrZARG1gaWBpm0anyY6enB+bGOyV6ZVzIK6bPUPzs17Rx48fb80GaHVtpQRaF7XYtZFIbTcRBAFb7rWc2uJM1rVoCCqgFquWdy0TBDCEbqSWlm2KQC38rZSW6nS67OxW+CxXr0Z7ec/J8MqRxtQ7ONQ/2xIREeHlFR191UVtqRu1wBep2hpqCNxrpYYg6dp4Ude2Y9cG8K5FQ8hyNwSglnZtNoE22svLKyKirKxFsTo28cQsH9v+81Bevb29O1qMZQAtUhs9SqnVsK5199osRi3fENwNgXitcBqrrmZly7r2DKUWq7Zb8FrBEAoptW1tGg3rWk5tC3xSQ53ig8zuf5pzd4df9c8qFIrEOgOhtgyphdCubaVdC9iyrkVo+Wnsm12bID6NZYqWLxX32qpm0fKVD9ii10bSrkVDiJJ2bWuriFqjsaUDPmpdXWIifG7f1bGezT55bfhfYrrfM7Wamufrq9cjtIkGA+1aZgiArdRrlUBtirRr2YbAvBZGBLV71/INAcuWbwjcEERey7tWKe7abGnXdiC1DFq9r29eampF/3O5dv/1ODd7pj5og4ODU13UQtdyQ+Beq9FovnMaE20IAdwQJHut2BCE05jaffkSDAGwxbJl1CK27DQ2iqcxCFKLXWsgXatX+BJqg4O1aWlJz14N35XR/RfTeP/2VOeFpKS0tDQCLVDrq9AjtXVIrdFYVsaoHWWGQKgN3EdtCNVa91sGtdQQmvhpjFUtX74QWjoioNdm0a5lGwL3Wp1GI/HaCCP1WkMddi1Cm5cH1BJsky5UxGHrysLw7wQd9pl/XFfFBaRWq9UCtalIrZ56rcG7A7u2jHktMQQN91qllFq2fImoba468G5M6rVq4rV8Q0CvZdTGgtcitrxrNUgtli1QCyFe6+0yBL3eF6Cl1CYBtYBtnL9/0b2ezWseco56QGLvpV++7O8fF1dRAdhC16Ih0K4lhpBoQBaMLS6vZacxTdu+DSFXsiHkU689YENgd2MSQ0iQ7rXiG90Qvnxh2eJhTOfqWihb7rXUEIBalyFotaRru+IQ28uXY9LBF27JD3OObPqePn9TlJ4eExNDqO0CapOQWsCWdq2CUmtgGwKnli9f6LWFrg0hhFEr7doS1rXSu7HM8nK3DaHd7W6shnutyxACqdficYxSyzYEgVqEVsENQYtdi9j6U2rTi4oqfaZu32n0kHO04nlr+N3HjIaGoqIipNafUNsF1KIicK9VUK8FQ8Cu5YbAqQVslfv2Wuq1+TU7uxszK/DycG1t2mJZWrKOjIzYHA673Wx2Ok3nPImbNJqcfWa7vdfhsMG3rUtLFss0PG3Eh43ruzvC8sW7lhkCgxYMQXzLYCReyzYESGoePY0JXesPiYlBbCsbOjMyMu713L/uIedo5NiNm+8++vhkALSVlaRrqSEAtNKu1VNqWddKN4Rs3f6uLdxYnsTXsdNLg7Ze8y95WOhp6rM7RqyW6fGB+bnJ5Q0lNQRyo+u+fOGGIMFWOI2Rqq2ghgDUYtcSbH18fE4AuXLnHvr0PX30JvzEiRM+gG0nYFsE2IIgQARD0LINIY9vCNLla1R8ozu6PLc4brE6zH/iEcAxp90GD83mJ/dAqjU64TTGvNYodC0uX2SvJV1LNwSkFg3B1bWEWvhBhIdfeSjbwiHO9QeP34aFXQkPp9AitWgIgtfGYdcecBrrMJYJy1c0gLIHb62GrE96+/7aCmoyOwYnhvrnJo3otXz5Yl6roNCmptLTGHYtei1imy50rQ+lFrANC7v48ra86B6+HLs1/PDs2YsA7RWAlmLb0MkNgXStdENwv2WIUKzi2yrnoZo98ekkPpYQ7saQWtq1dPlCr+WGIO1axJZSe/Hs2bePHsiae4jSeOfxpdBQhJZULe/aSmIISG0cNwTetQoIMQTDbP9Qj818mP+Pejp7ByfGVmeF5WufIVw4wGuxahm1oaGh9S9vyqPYYYgnnL1O19cDtEAt7VrqtXCIdnWtsCEkYdfyWwaF4jMp174j9JtsvGvrGer/oMcNQXzL0CVZvhoaMii1iG2YQG19/enTp08+li33K/tm7JNGGIbxqiEht5m7iasMcBuwwOJk0tEFcn9BG7s1bizQGBycCCbXpUkTo9VFJVpRSeNkuBqnq6BRoiwOMtldm3Tr+37fJ9+dtFEUbNX3+RPIj+d+93zf/ctgyZb1YDAUAmx510J410JY1wqvbTeEma3vJ9uP9571yObu8rfTd6xrhSEIahFb2bXCayW1wWAwM2CvLf5XFvSMMr9fzw9kMhnEFqmVXSsMYQI3hFFJLUD7GixwZuvHU/kuoG+zsXx0CtS+Yl4runZ0fHzcvSEAtUPcEEKCWshhdYlezx44I0vV80J+AILQQgIuagdby9e1vXbm9Ogp3kmd2j45q7z1Ll/tXRuAoCEAtQzbQkE93qdLCw+Wsa9NXVXVfB6xdXftsOxauSHwszHgtfG0L6IufNkBdhm0vGul10Kk14quzQO1qqqDK7yg9Dwj682wrk+raqEgoGXUtrp2yGUI3Gt/we3T5/L+0Q+6W/mIXTvR7rWArTSEfJ5Rq+the40at5dBMTDDCC2jVhoCYjscAGo5tBC+fA0elXefhsF2dqTdOKtMyLlWvo2F3NQCtNPTiG04aZcI3B6lb6mqJZPhK2rVFrVBFATRtXKvrZw1Fh/RotXdoOzu/LwYhLj3Wo8hCGrDQG1y1jTIcbufvo2ilTJnZxFbnRsC81qxIYQ8XntRpy9SWOZ3y+dv2pevjPRaQa1pplIph87OuoxsXEulTJND6zWEjPRagDZwXqbredd94bgiqfUYgsq6Ngldi9hqmna8Qj9etw6/bMvSNIYt/MAtQ8i7DQG79rLeoPH8b75QPg8wbINyQ+CGILtW0yxLUZoE7v2RrRmKolgaUouGwL1W93gtdu1lnY57bj5IPBRei+GGAHF3rYKJ7608l82lF5lacSLxOFLLutaUXeuhNlOnOyEdkMu9VnYtJGnysrUshDYej6SLG9QBd5TZdASgjSsQhNZFrS69FoilF6+OsgDkIrauDWEWu1ZjhoDYRiKRdNohU+g4CyUnl2tRa1nSEKTXFmwi9s7kNg89G4IwBNG1SG0uZ9BVhQ4PEwzDyKWBWoEtUis2BNG19toSydc9bx81D91dC9hKaiNIrWE4dPxwy8yXnEQCoL3WtSnetQhtsklXRLv1YajNli8BraYgtozaXBqgTSQS2cl1+q1vytj6pD+bBWpF10qvFV2btIukBV2WhVRrQxDQCkNAbLNZv1N7zoeMt/jr13x+P1LLyhawlYLAX8fobl33g0ZWtE2+11oearFr/RDf3gEV7p/z6WDS5/MJaF1eqwhslSo9q3qW/vn9Y63Na7Fqs0gtpDZHhXs9/Z9r0ShC6+5aQS1C65ToEKHXmVqvRtoNwQ9BbKPR96vUGt5H1IcYg9YjCDkxIcSrNB32ONLRSg7H1msIEMA2GqNJoZWp1ckYQCuoRWwZtUYaFSFdpNHwYbOwsodde7UhtLAFaGOxl7U5eub9Ztfscd0Eoihsu8oSKJBoQpUYyYULmhSIBVjACuip0tFQpEaaagTSyLiI9GSMZArEKp4it95N7oXBk6dUr7Ln59sB4uNw7p0BTlfb3s7Wcm0fvfbbV7MveAYo7k9eEB5h+x0Aa22b9OlKb9bHP7kNgLZC2slawKTs80Bx/2sIW8DO7dy7VSt9SfuoyHMurei1k7bnt/3K8ExQXLT2Y0MA8qLwro2mRaG6hV5RTNpuuba81345v+n+E3oR6su7aAjc2hyt9cL4qN+fcNNcw9DzPJG1i7VG2dfidHlHaYW1qK0H2oauZvvz/ZEyhtLyrBUN4WzuxLweIO6HrOXWhiQa6pUupHeLkRCYrbWB2dqzZh+vPGxOl1xoW3iztYyxqNWj4KadG0URm7z9tyHoPZi+PnBJRExjk7WEEHiTrtMof9T7q7NctJYwcBaYGgJwVf/R5Sft3bkh8KydrXVV93aHzs7WklBMY2b+kob65uE0NhcEQhhaa1mWo+7VmqqzgElaRlDbKWtD0wykAg6GikJkretO2saKelt1cRyjtQAD5qw1zUBCdr2L1jIWAdzaWEVvq44+pI0AErLQs/rdyiAjm9ONiF5rATGlpaPWwUM1ZHSxFokIY9FNn12fivw4toQwkbWobemPynhbD1lW0hKtfYTtVa3PUk+q3pp7LYDW0jLL2lGJ+yP14DhZltFFW5DW6swApgbrpn1kbVmCtJnj+KP0GyFwFsCspZRLq1j70Z2qsxC0loK0qK0vd95Wne/7IC1Q8qgd9DgB1Il0dKx4CVsH8P1E3n3C7t76AM/aErKW3s1FAxVZNweUllvrIwc5V5r7MUiSWVoMW5C2NdVAXao7DmNL1vpJkgy1dH/V9W9wNmmTxdqy7OR7CMMnV2EiaxMgkGzoXjdDEKC2S0HwR3OeoD6beuBZ26K0QXC4y/Pa/7Jrx7gJw1AYx2su0iuYgYFI7sAJstiS2ZKpk8UeWfKWKyQLLJ5Qxyp34TZ9D15YOkBpm9ji/U/A8CP+HFj0styMapHtZ54bh/t5y2E9LoQNVppMXoN1uixLQns8rl9PeZ0T3O96O5T4rL2wBQkuZnCbWQ7OXdUe1zwNni8YCsh2VOuK1I/a2jtHapHtZp/J+cD9bf0HoiW1rpAp38TfYlEUgJaetWUOZwP3P3UnetYCW1ChU52JogoS1UKIlq9gT95yILSugKRKciq2VhLaEpIVm3366j2pxaSMyf07YRUlND5qTynvGG6aaDOSWgnptFiIKoQLWmQ7pLphuOkTB0lqoZDSTGiVBrXE1iT0wbgEEn0gtSEEncoNfRV1uKKN/KqL+/4C1xYSA7XapjATRGU1hGxT3NtcGnUK0UJgZf7TuDWEls1yt9wiWsja7awzYRWttYgWYrPcLbejWqua2WaCqBSixQLvWe5mi06RWqv8TDOhNUrZC9sdm+Xuu5cpUqvU+wwzYbVVkIXYLHd/olekVpmpZ8KiMYbU7ma/EXJZBW5JrZl2V9bRnNWyWe4xt8TWTPd3FdEYSEFslnsoURlAi01FqN56f2br2xeOe9ytgbyf4nErGg/hl6RN4Jc5Lt++2rVjHMdCIIqiqtoRQW2mMogIyZFjlsB2B9wjjaY1PXa3wcbSPaEDR1fP9fVt8aPai2+f2+TlWu2l0yweZHlEO5S9cyu1lDKj5T/fWCH4jLaUnXMbvFyrzby8xRrayqUM2+ZWqvuM1nmpgHWkl8F9z9yG7LNa5yEMa0n8yHb93Er1oXjnoMVyFn3KQVcP7VRpFn+sDiznaiuHNufsHnkIwy7aPA/r5jbFGW3m7S12ku55WPN7Li1PPIRhN6sjtBjTmm+KmYcwPEOKs9tHF1JDHCoHLZ5DQ8yPBic9DoHjAKvsb85qjbFxHOCprMZaf5qdhlorxwGeTsPIttvPlno0y3GAZfbHp6n3ynGAV0m99u/2J6H3znGAvW4n+J25tdY7xwFey1pvQe6/DlrjOMDLqfXW7N5pbs0YWhxgtpj0rl1uiaHFISzccSWohUCzOIemm0VKChwHOMutKCVwHOA4av/JVi0xtDiRpCRfRcvQ4lBfxSnG0OJc/+xTjKHFyVRMP38iDC0O92lZVRhanO+vcVWGFu9BRWkW7+Z3rapEizdy7ZVm8V5Gtr8AtSnix59eOmYAAAAASUVORK5CYII=";
|
|
2352
2352
|
function Fc(i) {
|
|
2353
2353
|
ae(i, "svelte-rpkaro", ".floorplan-plugin__compass.svelte-rpkaro{position:absolute;left:50%;top:-2.875rem;width:14.4375rem;height:2.5625rem;will-change:opacity;transform-origin:center 11.5rem}.floorplan-plugin__compass-image.svelte-rpkaro{width:100%;height:100%;position:absolute;left:0;top:0;opacity:0.1;background-repeat:no-repeat;background-size:100% 100%}.floorplan-plugin__compass-text.svelte-rpkaro{position:absolute;left:50%;top:0.9375rem;transform:translateX(-50%);opacity:0.2;font-weight:bold;font-size:0.625rem;color:#fff}");
|
|
2354
2354
|
}
|
|
@@ -2356,7 +2356,7 @@ function Gc(i) {
|
|
|
2356
2356
|
let t, e, n, o, s;
|
|
2357
2357
|
return {
|
|
2358
2358
|
c() {
|
|
2359
|
-
t = j("div"), e = j("div"), n = V(), o = j("span"), s = xe(i[0]), b(e, "class", "floorplan-plugin__compass-image svelte-rpkaro"), R(e, "background-image", `url(${
|
|
2359
|
+
t = j("div"), e = j("div"), n = V(), o = j("span"), s = xe(i[0]), b(e, "class", "floorplan-plugin__compass-image svelte-rpkaro"), R(e, "background-image", `url(${Hc})`), b(o, "class", "floorplan-plugin__compass-text svelte-rpkaro"), b(t, "class", "floorplan-plugin__compass svelte-rpkaro"), R(t, "transform", i[2]);
|
|
2360
2360
|
},
|
|
2361
2361
|
m(r, a) {
|
|
2362
2362
|
B(r, t, a), Q(t, e), Q(t, n), Q(t, o), Q(o, s);
|
|
@@ -2681,14 +2681,14 @@ function dd(i, t, e) {
|
|
|
2681
2681
|
function p(k, F) {
|
|
2682
2682
|
if (F.width === 0 || F.height === 0)
|
|
2683
2683
|
return () => !1;
|
|
2684
|
-
const
|
|
2684
|
+
const O = k.path.map(({ x: Z, y: X }) => [Z, X]), G = k.roomLabel.position, { x: Y, y: P } = G, { width: I, height: T } = F, H = I / 2, N = T / 2;
|
|
2685
2685
|
return function(X) {
|
|
2686
|
-
const U = Y * X, le = P * X, ue =
|
|
2686
|
+
const U = Y * X, le = P * X, ue = O.map(([we, ke]) => [we * X, ke * X]);
|
|
2687
2687
|
return [
|
|
2688
|
-
[U +
|
|
2689
|
-
[U -
|
|
2690
|
-
[U -
|
|
2691
|
-
[U +
|
|
2688
|
+
[U + H, le - N],
|
|
2689
|
+
[U - H, le - N],
|
|
2690
|
+
[U - H, le + N],
|
|
2691
|
+
[U + H, le + N]
|
|
2692
2692
|
].every((we) => cd(we, ue));
|
|
2693
2693
|
};
|
|
2694
2694
|
}
|
|
@@ -3054,11 +3054,11 @@ class bd extends oe {
|
|
|
3054
3054
|
function yd(i) {
|
|
3055
3055
|
ae(i, "svelte-1mzj9p3", ".floorplan-plugin__rule-labels-wrapper.svelte-1mzj9p3{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);pointer-events:none}");
|
|
3056
3056
|
}
|
|
3057
|
-
function
|
|
3057
|
+
function Oo(i, t, e) {
|
|
3058
3058
|
const n = i.slice();
|
|
3059
3059
|
return n[13] = t[e][0], n[14] = t[e][1], n;
|
|
3060
3060
|
}
|
|
3061
|
-
function
|
|
3061
|
+
function Ho(i, t) {
|
|
3062
3062
|
let e, n, o;
|
|
3063
3063
|
const s = [
|
|
3064
3064
|
{
|
|
@@ -3107,8 +3107,8 @@ function wd(i) {
|
|
|
3107
3107
|
let t, e = [], n = /* @__PURE__ */ new Map(), o, s = i[4];
|
|
3108
3108
|
const r = (a) => a[13];
|
|
3109
3109
|
for (let a = 0; a < s.length; a += 1) {
|
|
3110
|
-
let l =
|
|
3111
|
-
n.set(c, e[a] =
|
|
3110
|
+
let l = Oo(i, s, a), c = r(l);
|
|
3111
|
+
n.set(c, e[a] = Ho(c, l));
|
|
3112
3112
|
}
|
|
3113
3113
|
return {
|
|
3114
3114
|
c() {
|
|
@@ -3124,7 +3124,7 @@ function wd(i) {
|
|
|
3124
3124
|
o = !0;
|
|
3125
3125
|
},
|
|
3126
3126
|
p(a, [l]) {
|
|
3127
|
-
l & 19 && (s = a[4], ce(), e = Je(e, l, r, 1, a, s, n, t, at,
|
|
3127
|
+
l & 19 && (s = a[4], ce(), e = Je(e, l, r, 1, a, s, n, t, at, Ho, null, Oo), de()), l & 8 && R(t, "width", a[3]), l & 4 && R(t, "height", a[2]);
|
|
3128
3128
|
},
|
|
3129
3129
|
i(a) {
|
|
3130
3130
|
if (!o) {
|
|
@@ -3342,7 +3342,7 @@ function Rd(i) {
|
|
|
3342
3342
|
}
|
|
3343
3343
|
};
|
|
3344
3344
|
}
|
|
3345
|
-
function
|
|
3345
|
+
function Od(i) {
|
|
3346
3346
|
let t, e;
|
|
3347
3347
|
return t = new jd({ props: { path: i[5].path } }), {
|
|
3348
3348
|
c() {
|
|
@@ -3366,7 +3366,7 @@ function Hd(i) {
|
|
|
3366
3366
|
}
|
|
3367
3367
|
};
|
|
3368
3368
|
}
|
|
3369
|
-
function
|
|
3369
|
+
function Hd(i) {
|
|
3370
3370
|
let t, e;
|
|
3371
3371
|
return t = new Ld({ props: { path: i[5].path } }), {
|
|
3372
3372
|
c() {
|
|
@@ -3392,7 +3392,7 @@ function Od(i) {
|
|
|
3392
3392
|
}
|
|
3393
3393
|
function Wo(i) {
|
|
3394
3394
|
let t, e, n, o;
|
|
3395
|
-
const s = [
|
|
3395
|
+
const s = [Hd, Od, Rd], r = [];
|
|
3396
3396
|
function a(l, c) {
|
|
3397
3397
|
return l[5].floorType === 1 ? 0 : l[5].floorType === 0 ? 1 : 2;
|
|
3398
3398
|
}
|
|
@@ -3919,7 +3919,7 @@ function _o(i) {
|
|
|
3919
3919
|
let h = {};
|
|
3920
3920
|
for (let p = 0; p < d.length; p += 1)
|
|
3921
3921
|
h = ye(h, d[p]);
|
|
3922
|
-
n = new
|
|
3922
|
+
n = new Oc({ props: h });
|
|
3923
3923
|
let u = i[6] && Ko(i);
|
|
3924
3924
|
return {
|
|
3925
3925
|
c() {
|
|
@@ -3963,7 +3963,7 @@ function _o(i) {
|
|
|
3963
3963
|
for (let m = 0; m < a.length; m += 1)
|
|
3964
3964
|
D(l[m]);
|
|
3965
3965
|
D(n.$$.fragment, p), D(u), s || Ie(() => {
|
|
3966
|
-
s =
|
|
3966
|
+
s = Ot(t, Tt, {
|
|
3967
3967
|
duration: i[0],
|
|
3968
3968
|
easing: Vt
|
|
3969
3969
|
}), s.start();
|
|
@@ -4267,7 +4267,7 @@ class ci {
|
|
|
4267
4267
|
return this.state;
|
|
4268
4268
|
}
|
|
4269
4269
|
}
|
|
4270
|
-
class
|
|
4270
|
+
class Ht extends ci {
|
|
4271
4271
|
}
|
|
4272
4272
|
var Fe = /* @__PURE__ */ ((i) => (i.UnknownError = "UnknownError", i.DataNotLoaded = "DataNotLoaded", i.BreakOffByHide = "BreakOffByHide", i.BreakOffByDisable = "BreakOffByDisable", i.ModelNotLoaded = "ModelNotLoaded", i.ChangeModeError = "ChangeModeError", i.UpdateCameraError = "UpdateCameraError", i))(Fe || {});
|
|
4273
4273
|
const ba = 500, uu = 80;
|
|
@@ -4340,7 +4340,7 @@ function fu(i) {
|
|
|
4340
4340
|
const { latitude: t, longitude: e } = i, n = Math.abs(t - Math.PI / 2) < 10 * Math.PI / 180, o = e < 30 * (Math.PI / 180) || e > 330 * (Math.PI / 180);
|
|
4341
4341
|
return n && o;
|
|
4342
4342
|
}
|
|
4343
|
-
class mu extends
|
|
4343
|
+
class mu extends Ht {
|
|
4344
4344
|
constructor(e, n) {
|
|
4345
4345
|
var a;
|
|
4346
4346
|
super(e);
|
|
@@ -4613,7 +4613,7 @@ function gu(i) {
|
|
|
4613
4613
|
const { latitude: t, longitude: e } = i, n = Math.abs(t - Math.PI / 2) < 10 * Math.PI / 180, o = e < 30 * (Math.PI / 180) || e > 330 * (Math.PI / 180);
|
|
4614
4614
|
return n && o;
|
|
4615
4615
|
}
|
|
4616
|
-
class Au extends
|
|
4616
|
+
class Au extends Ht {
|
|
4617
4617
|
constructor(e, n) {
|
|
4618
4618
|
super(e);
|
|
4619
4619
|
f(this, "name", "modelFloorplanPlugin");
|
|
@@ -4882,7 +4882,7 @@ class Au extends Ot {
|
|
|
4882
4882
|
}
|
|
4883
4883
|
}
|
|
4884
4884
|
const V0 = (i, t) => new Au(i, t);
|
|
4885
|
-
class vu extends
|
|
4885
|
+
class vu extends Ht {
|
|
4886
4886
|
constructor(e, n) {
|
|
4887
4887
|
super(e);
|
|
4888
4888
|
f(this, "name", "topviewFloorplanPlugin");
|
|
@@ -5566,7 +5566,7 @@ class Bu extends oe {
|
|
|
5566
5566
|
);
|
|
5567
5567
|
}
|
|
5568
5568
|
}
|
|
5569
|
-
class ju extends
|
|
5569
|
+
class ju extends Ht {
|
|
5570
5570
|
constructor(e, n) {
|
|
5571
5571
|
super(e);
|
|
5572
5572
|
f(this, "name", "panoFloorplanRadarPlugin");
|
|
@@ -5833,8 +5833,8 @@ const eA = (i, t) => {
|
|
|
5833
5833
|
}
|
|
5834
5834
|
} = i;
|
|
5835
5835
|
o.yBase = k;
|
|
5836
|
-
const
|
|
5837
|
-
return Qu(y, { position:
|
|
5836
|
+
const O = { x: (L + S) / 2, y: k - 1.6, z: (C + F) / 2 }, G = 45e-4 * A;
|
|
5837
|
+
return Qu(y, { position: O, rotation: x, scale: G }), o.object = y, !0;
|
|
5838
5838
|
}), r = ({ latitude: h }) => {
|
|
5839
5839
|
if (!o.object)
|
|
5840
5840
|
return;
|
|
@@ -5865,19 +5865,19 @@ function Ru(i, t) {
|
|
|
5865
5865
|
const l = a.getContext("2d");
|
|
5866
5866
|
return l.fillStyle = o, l.fillRect(0, 0, e, e), l.font = `${n}px "\u5FAE\u8F6F\u96C5\u9ED1"`, l.textAlign = r, l.fillStyle = s, l.fillText(i, e / 2, e * 0.7), new bl(a);
|
|
5867
5867
|
}
|
|
5868
|
-
const
|
|
5868
|
+
const Ou = ({ x: i, y: t, z: e }) => new _(i, t, e), tA = (i, t) => {
|
|
5869
5869
|
var g, v, A;
|
|
5870
5870
|
const e = {}, n = (g = t.animationEnabled) != null ? g : !0, o = (v = t.position) != null ? v : void 0, s = (A = t.rad) != null ? A : void 0, r = t.fbx_url || "//vrlab-image4.ljcdn.com/release/web/entryDoorMini/Anim_Door1.fbx", a = [], l = (w) => J(void 0, null, function* () {
|
|
5871
|
-
var
|
|
5872
|
-
const y = (
|
|
5871
|
+
var O, G, Y, P, I, T, H, N;
|
|
5872
|
+
const y = (O = w == null ? void 0 : w.position) != null ? O : o;
|
|
5873
5873
|
if (!y)
|
|
5874
5874
|
return Promise.reject(new Error("ModelEntryDoorGuidePlugin.load(): position is undefined"));
|
|
5875
|
-
const x =
|
|
5875
|
+
const x = Ou(y), L = (G = w == null ? void 0 : w.rad) != null ? G : s, C = (Y = w == null ? void 0 : w.fbx_url) != null ? Y : r;
|
|
5876
5876
|
if (e.rad = L, L === void 0)
|
|
5877
5877
|
return Promise.reject(new Error(`ModelEntryDoorGuidePlugin.load(): rad is ${L}`));
|
|
5878
5878
|
const S = yield new Yr().loadAsync(C);
|
|
5879
5879
|
S.position.copy(x), S.rotation.z = L, S.scale.set(0.8, 0.8, 0.8), Ca(S, { transparent: !0, side: E.DoubleSide });
|
|
5880
|
-
const k = (
|
|
5880
|
+
const k = (H = (T = (I = (P = S.children) == null ? void 0 : P[0]) == null ? void 0 : I.children) == null ? void 0 : T[3]) == null ? void 0 : H.clone();
|
|
5881
5881
|
if (!k)
|
|
5882
5882
|
return Promise.reject(new Error(`ModelEntryDoorGuidePlugin.load(): textMesh is ${k}`));
|
|
5883
5883
|
const F = (N = t.name) != null ? N : "\u5165\u6237\u95E8";
|
|
@@ -5893,14 +5893,14 @@ const Hu = ({ x: i, y: t, z: e }) => new _(i, t, e), tA = (i, t) => {
|
|
|
5893
5893
|
x.timeScale = w;
|
|
5894
5894
|
let L;
|
|
5895
5895
|
const C = () => {
|
|
5896
|
-
let
|
|
5896
|
+
let O = 0, G = 0;
|
|
5897
5897
|
const Y = 1e3 / 30, P = (I) => {
|
|
5898
|
-
|
|
5898
|
+
O = requestAnimationFrame(P);
|
|
5899
5899
|
const T = I - G;
|
|
5900
|
-
T < Y || (G = I, a.forEach((
|
|
5900
|
+
T < Y || (G = I, a.forEach((H) => H.update(T / 1e3)), i.needsRender = !0);
|
|
5901
5901
|
};
|
|
5902
|
-
return
|
|
5903
|
-
cancelAnimationFrame(
|
|
5902
|
+
return O = requestAnimationFrame(P), () => {
|
|
5903
|
+
cancelAnimationFrame(O);
|
|
5904
5904
|
};
|
|
5905
5905
|
}, F = { play: () => {
|
|
5906
5906
|
L || (x.play(), L = C(), requestAnimationFrame(() => {
|
|
@@ -5937,7 +5937,7 @@ function Ea(i, t = dn.Easing.Linear.None) {
|
|
|
5937
5937
|
const e = new ao({ progress: 0 }).to({ progress: 1 });
|
|
5938
5938
|
return i !== void 0 && e.duration(i), t !== void 0 && e.easing(t), e;
|
|
5939
5939
|
}
|
|
5940
|
-
const gn = window.requestAnimationFrame || ((i) => setTimeout(i, 16)),
|
|
5940
|
+
const gn = window.requestAnimationFrame || ((i) => setTimeout(i, 16)), Hu = window.cancelAnimationFrame || clearTimeout;
|
|
5941
5941
|
function di(i, t = 0) {
|
|
5942
5942
|
t <= 0 ? gn(i) : gn(() => di(i, t - 1));
|
|
5943
5943
|
}
|
|
@@ -5948,7 +5948,7 @@ function ui(i, t = 60) {
|
|
|
5948
5948
|
o === -1 && (o = a), e = gn(r), !(a - n < s) && (n = a, i && i(a - o));
|
|
5949
5949
|
}
|
|
5950
5950
|
return e = gn(r), function() {
|
|
5951
|
-
|
|
5951
|
+
Hu(e);
|
|
5952
5952
|
};
|
|
5953
5953
|
}
|
|
5954
5954
|
function Fu() {
|
|
@@ -6238,7 +6238,7 @@ const Uu = `<style type="text/css">
|
|
|
6238
6238
|
return !1;
|
|
6239
6239
|
for (const y in v) {
|
|
6240
6240
|
const x = v[y], { standingPosition: L } = w.observers[0], C = x.map(({ x: S, z: k, observers: F }) => {
|
|
6241
|
-
const
|
|
6241
|
+
const O = F.length > 0 ? g.rooms[g.observers[F[0]]].name : "", G = A[O] ? A[O].floor : null;
|
|
6242
6242
|
let Y = 1 / 0, P = {
|
|
6243
6243
|
index: 0,
|
|
6244
6244
|
x: L.x,
|
|
@@ -6258,8 +6258,8 @@ const Uu = `<style type="text/css">
|
|
|
6258
6258
|
});
|
|
6259
6259
|
const I = new _(S, P.y, k);
|
|
6260
6260
|
Object.assign(I, { observers: F });
|
|
6261
|
-
const T = A[
|
|
6262
|
-
return
|
|
6261
|
+
const T = A[O] ? A[O].roof : null, H = T ? new _(S, T, k) : null;
|
|
6262
|
+
return H && Object.assign(H, { observers: F }), { origin: I, vertical: H };
|
|
6263
6263
|
});
|
|
6264
6264
|
r[y] = {
|
|
6265
6265
|
origins: C.map((S) => S.origin),
|
|
@@ -6274,8 +6274,8 @@ const Uu = `<style type="text/css">
|
|
|
6274
6274
|
for (let S = 0; S < C.length; S++) {
|
|
6275
6275
|
let k = S + 1;
|
|
6276
6276
|
k >= C.length && (k = 0);
|
|
6277
|
-
const { origin: F } = C[S], { origin:
|
|
6278
|
-
o.append(G), r[y].rules.push({ vertical: !1, rule: [F,
|
|
6277
|
+
const { origin: F } = C[S], { origin: O } = C[k], G = n(y, F.distanceTo(O));
|
|
6278
|
+
o.append(G), r[y].rules.push({ vertical: !1, rule: [F, O], $element: G });
|
|
6279
6279
|
}
|
|
6280
6280
|
}
|
|
6281
6281
|
return e.loaded = !0, !0;
|
|
@@ -6321,30 +6321,30 @@ const Uu = `<style type="text/css">
|
|
|
6321
6321
|
if (v === void 0)
|
|
6322
6322
|
return;
|
|
6323
6323
|
let y;
|
|
6324
|
-
for (const
|
|
6325
|
-
|
|
6324
|
+
for (const O in r)
|
|
6325
|
+
O.split(",").indexOf(v.toString()) >= 0 && (y = O);
|
|
6326
6326
|
if (!y) {
|
|
6327
|
-
for (const
|
|
6328
|
-
for (const { $element: G } of r[
|
|
6327
|
+
for (const O in r)
|
|
6328
|
+
for (const { $element: G } of r[O].rules)
|
|
6329
6329
|
G.style.display = "none";
|
|
6330
6330
|
return;
|
|
6331
6331
|
}
|
|
6332
6332
|
const x = A.position, L = A.getWorldDirection(new _()), C = g.clientWidth, S = g.clientHeight;
|
|
6333
6333
|
if (w !== Be.Mode.Panorama) {
|
|
6334
|
-
for (const
|
|
6335
|
-
for (const { $element: G } of r[
|
|
6334
|
+
for (const O in r)
|
|
6335
|
+
for (const { $element: G } of r[O].rules)
|
|
6336
6336
|
G.style.display = "none";
|
|
6337
6337
|
return;
|
|
6338
6338
|
}
|
|
6339
|
-
for (const
|
|
6340
|
-
for (const { $element: G } of r[
|
|
6341
|
-
G.style.display =
|
|
6342
|
-
const [k] = r[y].origins.slice().filter((
|
|
6343
|
-
const Y =
|
|
6339
|
+
for (const O in r)
|
|
6340
|
+
for (const { $element: G } of r[O].rules)
|
|
6341
|
+
G.style.display = O === y ? "block" : "none";
|
|
6342
|
+
const [k] = r[y].origins.slice().filter((O) => O.observers.indexOf(v) >= 0).sort((O, G) => {
|
|
6343
|
+
const Y = O.clone().setY(0).sub(x).normalize().angleTo(L.clone().setY(0)), P = G.clone().setY(0).sub(x).normalize().angleTo(L.clone().setY(0));
|
|
6344
6344
|
return Y - P;
|
|
6345
6345
|
});
|
|
6346
|
-
for (const { rule:
|
|
6347
|
-
const [P, I] =
|
|
6346
|
+
for (const { rule: O, vertical: G, $element: Y } of r[y].rules) {
|
|
6347
|
+
const [P, I] = O, T = Y.querySelector(".PanoRulerPlugin-rule-line");
|
|
6348
6348
|
if (!T)
|
|
6349
6349
|
return;
|
|
6350
6350
|
if (!k) {
|
|
@@ -6627,21 +6627,21 @@ function nh(i, t, e) {
|
|
|
6627
6627
|
}
|
|
6628
6628
|
return C.length === 0 ? !1 : C;
|
|
6629
6629
|
}, d = (y, x) => {
|
|
6630
|
-
const L = y.clone().project(n.camera), C = (L.x + 1) / 2 * a, S = (-L.y + 1) / 2 * l, k = x.clone().project(n.camera), F = (k.x + 1) / 2 * a,
|
|
6630
|
+
const L = y.clone().project(n.camera), C = (L.x + 1) / 2 * a, S = (-L.y + 1) / 2 * l, k = x.clone().project(n.camera), F = (k.x + 1) / 2 * a, O = (-k.y + 1) / 2 * l, G = Math.sqrt(Math.pow(F - C, 2) + Math.pow(O - S, 2));
|
|
6631
6631
|
return {
|
|
6632
6632
|
startLeft: C,
|
|
6633
6633
|
startTop: S,
|
|
6634
6634
|
endLeft: F,
|
|
6635
|
-
endTop:
|
|
6635
|
+
endTop: O,
|
|
6636
6636
|
distance: G
|
|
6637
6637
|
};
|
|
6638
6638
|
}, h = (y, x, L) => {
|
|
6639
|
-
const C = n.camera.position, S = n.camera.getWorldDirection(new _()), k = y.clone().sub(C).normalize().angleTo(S), F = x.clone().sub(C).normalize().angleTo(S),
|
|
6639
|
+
const C = n.camera.position, S = n.camera.getWorldDirection(new _()), k = y.clone().sub(C).normalize().angleTo(S), F = x.clone().sub(C).normalize().angleTo(S), O = y.distanceTo(x), Y = x.clone().sub(x.clone().sub(y).divide(new _(2, 2, 2))).distanceTo(C), { startLeft: P, startTop: I, endLeft: T, endTop: H, distance: N } = d(y, x), X = -((Math.PI / 2 - Math.atan2(T - P, I - H)) / Math.PI) * 180;
|
|
6640
6640
|
let U = !0;
|
|
6641
|
-
L || (U = !1), !Ke(y, L) && !Ke(x, L) && (U = !1),
|
|
6641
|
+
L || (U = !1), !Ke(y, L) && !Ke(x, L) && (U = !1), O < 0.3 && (U = !1), k > Math.PI / 2 && (U = !1), F > Math.PI / 2 && (U = !1), Y / O > 8 && (U = !1);
|
|
6642
6642
|
let le = 50, ue = N;
|
|
6643
|
-
const me = c({ x: ~~P, y: ~~I }, { x: ~~T, y: ~~
|
|
6644
|
-
if (me && me.length === 1 && (Ke(y, L) ? (ue = Math.sqrt(Math.pow(me[0].x - P, 2) + Math.pow(me[0].y - I, 2)), le = ue / N * 50) : Ke(x, L) && (ue = Math.sqrt(Math.pow(me[0].x - T, 2) + Math.pow(me[0].y -
|
|
6643
|
+
const me = c({ x: ~~P, y: ~~I }, { x: ~~T, y: ~~H });
|
|
6644
|
+
if (me && me.length === 1 && (Ke(y, L) ? (ue = Math.sqrt(Math.pow(me[0].x - P, 2) + Math.pow(me[0].y - I, 2)), le = ue / N * 50) : Ke(x, L) && (ue = Math.sqrt(Math.pow(me[0].x - T, 2) + Math.pow(me[0].y - H, 2)), le = 100 - ue / N * 50)), me && me.length === 2) {
|
|
6645
6645
|
const we = {
|
|
6646
6646
|
x: (me[0].x + me[1].x) / 2,
|
|
6647
6647
|
y: (me[0].y + me[1].y) / 2
|
|
@@ -6655,7 +6655,7 @@ function nh(i, t, e) {
|
|
|
6655
6655
|
deg: X,
|
|
6656
6656
|
visible: U,
|
|
6657
6657
|
labelOffset: le,
|
|
6658
|
-
ruleLength:
|
|
6658
|
+
ruleLength: O
|
|
6659
6659
|
};
|
|
6660
6660
|
}, u = () => {
|
|
6661
6661
|
const y = n.panoIndex, x = o.find((G) => G.panoIndex === y);
|
|
@@ -6666,14 +6666,14 @@ function nh(i, t, e) {
|
|
|
6666
6666
|
const L = n.camera.position, C = n.camera.getWorldDirection(new _()), S = x.lines.map((G) => new _(G.start[0], -G.start[1], -G.start[2])), k = x.lines.map((G) => new _(G.end[0], -G.end[1], -G.end[2])), [F] = S.concat(k).sort((G, Y) => {
|
|
6667
6667
|
const P = G.clone().setY(0).sub(L).normalize().angleTo(C.clone().setY(0)), I = Y.clone().setY(0).sub(L).normalize().angleTo(C.clone().setY(0));
|
|
6668
6668
|
return P - I;
|
|
6669
|
-
}),
|
|
6669
|
+
}), O = x.lines.map((G) => {
|
|
6670
6670
|
var ue, me;
|
|
6671
|
-
const Y = G.start, P = G.end, { startLeft: I, startTop: T, distance:
|
|
6671
|
+
const Y = G.start, P = G.end, { startLeft: I, startTop: T, distance: H, deg: N, visible: Z, labelOffset: X, ruleLength: U } = h(new _(Y[0], -Y[1], -Y[2]), new _(P[0], -P[1], -P[2]), F), le = [];
|
|
6672
6672
|
return G.children && ((ue = G.children) == null ? void 0 : ue.length) > 0 && ((me = G.children) == null || me.forEach((we) => {
|
|
6673
6673
|
const ke = we.start, Re = we.end, { distance: se } = d(new _(ke[0], -ke[1], -ke[2]), new _(Re[0], -Re[1], -Re[2]));
|
|
6674
6674
|
le.push({ width: se, state: we.state });
|
|
6675
6675
|
})), {
|
|
6676
|
-
width:
|
|
6676
|
+
width: H,
|
|
6677
6677
|
left: I,
|
|
6678
6678
|
top: T,
|
|
6679
6679
|
rotateDeg: N,
|
|
@@ -6684,7 +6684,7 @@ function nh(i, t, e) {
|
|
|
6684
6684
|
labelElement: s.distanceText(U)
|
|
6685
6685
|
};
|
|
6686
6686
|
});
|
|
6687
|
-
e(0, r =
|
|
6687
|
+
e(0, r = O);
|
|
6688
6688
|
}, p = () => di(u), m = ro(u, 80);
|
|
6689
6689
|
return Ue(() => {
|
|
6690
6690
|
u(), n.on("panoArrived", u), n.on("modeChange", u), n.on("cameraDirectionUpdate", p), n.on("movingToPano", p), n.on("mouseWheel", () => m()), n.on("pinchGesture", () => m());
|
|
@@ -6790,7 +6790,7 @@ function hs(i) {
|
|
|
6790
6790
|
});
|
|
6791
6791
|
}
|
|
6792
6792
|
const Sn = { userAction: !0 };
|
|
6793
|
-
class lh extends
|
|
6793
|
+
class lh extends Ht {
|
|
6794
6794
|
constructor(e, n) {
|
|
6795
6795
|
super(e);
|
|
6796
6796
|
f(this, "state", {
|
|
@@ -6972,8 +6972,8 @@ class lh extends Ot {
|
|
|
6972
6972
|
}
|
|
6973
6973
|
const sA = (i, t) => new lh(i, t);
|
|
6974
6974
|
function zn(i, t, e) {
|
|
6975
|
-
const n = i[t];
|
|
6976
|
-
i[t] =
|
|
6975
|
+
const n = i[t], o = i[e];
|
|
6976
|
+
n === void 0 || o === void 0 || (i[t] = o, i[e] = n);
|
|
6977
6977
|
}
|
|
6978
6978
|
function ch(i, t, e) {
|
|
6979
6979
|
const n = e / 2;
|
|
@@ -6989,31 +6989,33 @@ class dh {
|
|
|
6989
6989
|
constructor(t, e) {
|
|
6990
6990
|
f(this, "width");
|
|
6991
6991
|
f(this, "height");
|
|
6992
|
-
f(this, "
|
|
6992
|
+
f(this, "containerDom");
|
|
6993
6993
|
f(this, "hooks", new Ye());
|
|
6994
|
-
f(this, "
|
|
6994
|
+
f(this, "canvas", document.createElement("canvas"));
|
|
6995
6995
|
f(this, "five");
|
|
6996
6996
|
f(this, "scale");
|
|
6997
|
-
f(this, "wrapper");
|
|
6998
6997
|
f(this, "config");
|
|
6999
6998
|
f(this, "offset", { x: 0, y: 0 });
|
|
7000
|
-
f(this, "canvas", this.contentDom);
|
|
7001
6999
|
f(this, "context");
|
|
7002
7000
|
f(this, "renderCenter", new E.Vector3());
|
|
7003
|
-
f(this, "lastPanEvent");
|
|
7004
7001
|
f(this, "hammer");
|
|
7002
|
+
f(this, "state", { enabled: !1 });
|
|
7003
|
+
f(this, "offsetRange");
|
|
7004
|
+
f(this, "isPanning", !1);
|
|
7005
|
+
f(this, "onPanstart", () => {
|
|
7006
|
+
this.isPanning = !0, this.canvas.style.boxShadow = "0 2px 30px 0 rgba(0,0,0,0.20)";
|
|
7007
|
+
});
|
|
7005
7008
|
f(this, "onPan", (t) => {
|
|
7006
|
-
|
|
7007
|
-
if (!this.wrapper)
|
|
7009
|
+
if (!this.isPanning || !this.offsetRange || this.hooks.emit("wantsPanGesture", t))
|
|
7008
7010
|
return;
|
|
7009
|
-
const
|
|
7010
|
-
|
|
7011
|
-
return;
|
|
7012
|
-
const a = this.offset.x + o, l = this.offset.y + s;
|
|
7013
|
-
this.contentDom.style.boxShadow = "0 2px 30px 0 rgba(0,0,0,0.20)", this.canvas.style.transform = `translate3d(${a}px, ${l}px, 100px)`, this.offset = { x: a, y: l };
|
|
7011
|
+
const { translateX: n, translateY: o } = this.getPanOffset(t, this.offsetRange);
|
|
7012
|
+
this.canvas.style.transform = `translate3d(${n}px, ${o}px, 100px)`;
|
|
7014
7013
|
});
|
|
7015
|
-
f(this, "
|
|
7016
|
-
this.
|
|
7014
|
+
f(this, "onPanend", (t) => {
|
|
7015
|
+
if (this.isPanning = !1, this.canvas.style.boxShadow = "none", !this.offsetRange)
|
|
7016
|
+
return;
|
|
7017
|
+
const { translateX: e, translateY: n } = this.getPanOffset(t, this.offsetRange);
|
|
7018
|
+
this.canvas.style.transform = `translate3d(${e}px, ${n}px, 100px)`, this.offset = { x: e, y: n };
|
|
7017
7019
|
});
|
|
7018
7020
|
var o, s, r;
|
|
7019
7021
|
if (!t.renderer)
|
|
@@ -7026,37 +7028,79 @@ class dh {
|
|
|
7026
7028
|
const n = this.canvas.getContext("2d");
|
|
7027
7029
|
if (!n)
|
|
7028
7030
|
throw new Error("CANNOT CREATE CONTEXT2D");
|
|
7029
|
-
this.context = n, this.config.dragEnabled && (this.hammer = new vn(this.canvas), this.hammer.on("pan", this.onPan), this.hammer.on("panend", this.
|
|
7031
|
+
this.context = n, this.config.dragEnabled && (this.hammer = new vn(this.canvas), this.hammer.on("pan", this.onPan), this.hammer.on("panstart", this.onPanstart), this.hammer.on("panend", this.onPanend)), this.initStyle();
|
|
7030
7032
|
}
|
|
7031
7033
|
dispose() {
|
|
7032
7034
|
var t;
|
|
7033
|
-
this.clear(), this.
|
|
7035
|
+
this.clear(), this.disable(), (t = this.hammer) == null || t.destroy();
|
|
7034
7036
|
}
|
|
7035
|
-
|
|
7036
|
-
this.
|
|
7037
|
+
enable() {
|
|
7038
|
+
if (!this.state.enabled)
|
|
7039
|
+
return this.state.enabled = !0, this.containerDom && this._appendTo(this.containerDom), this;
|
|
7037
7040
|
}
|
|
7038
|
-
|
|
7039
|
-
|
|
7041
|
+
disable() {
|
|
7042
|
+
if (!!this.state.enabled)
|
|
7043
|
+
return this.state.enabled = !1, this.canvas.remove(), this;
|
|
7040
7044
|
}
|
|
7041
7045
|
appendTo(t) {
|
|
7042
|
-
this.
|
|
7046
|
+
return this.containerDom = t, this.state.enabled && this._appendTo(t), this;
|
|
7047
|
+
}
|
|
7048
|
+
clear() {
|
|
7049
|
+
return this.context.clearRect(0, 0, this.canvas.width, this.canvas.height), this;
|
|
7043
7050
|
}
|
|
7044
7051
|
renderWithPoint(t) {
|
|
7045
|
-
!this.
|
|
7052
|
+
!this.containerDom || !this.state.enabled || (this.renderCenter = t, this.render(), this.config.autoFixPCPosition && this.autoFixPCPosition());
|
|
7053
|
+
}
|
|
7054
|
+
renderWithScreenPoint(t) {
|
|
7055
|
+
!this.containerDom || !this.state.enabled || (this.renderCenter = t, this.render(), this.config.autoFixPCPosition && this.autoFixPCPosition());
|
|
7056
|
+
}
|
|
7057
|
+
resetOffset() {
|
|
7058
|
+
this.offset = { x: 0, y: 0 }, this.canvas.style.transform = `translate3d(${0}px, ${0}px, 100px)`;
|
|
7059
|
+
}
|
|
7060
|
+
getCurrentState() {
|
|
7061
|
+
return { enabled: this.state.enabled };
|
|
7062
|
+
}
|
|
7063
|
+
getRenderCenter() {
|
|
7064
|
+
return this.renderCenter;
|
|
7065
|
+
}
|
|
7066
|
+
_appendTo(t) {
|
|
7067
|
+
if (this.resetOffset(), t.appendChild(this.canvas), !this.offsetRange) {
|
|
7068
|
+
const e = this.canvas.getBoundingClientRect(), n = t.getBoundingClientRect(), o = n.right - e.right, s = n.bottom - e.bottom, r = n.left - e.left, a = n.top - e.top;
|
|
7069
|
+
this.offsetRange = {
|
|
7070
|
+
min: { x: r, y: a },
|
|
7071
|
+
max: { x: o, y: s }
|
|
7072
|
+
};
|
|
7073
|
+
}
|
|
7046
7074
|
}
|
|
7047
7075
|
autoFixPCPosition() {
|
|
7048
|
-
if (!this.
|
|
7076
|
+
if (!this.containerDom)
|
|
7049
7077
|
return;
|
|
7050
|
-
const { width: t, height: e } = this, n
|
|
7051
|
-
|
|
7078
|
+
const { width: t, height: e } = this, [n, o, s] = (() => {
|
|
7079
|
+
if (this.renderCenter instanceof E.Vector3) {
|
|
7080
|
+
const r = this.renderCenter.clone().project(this.five.camera);
|
|
7081
|
+
return [
|
|
7082
|
+
(r.x + 1) / 2 * this.containerDom.clientWidth,
|
|
7083
|
+
-(r.x - 1) / 2 * this.containerDom.clientWidth,
|
|
7084
|
+
-(r.y - 1) / 2 * this.containerDom.clientHeight
|
|
7085
|
+
];
|
|
7086
|
+
} else
|
|
7087
|
+
return [this.renderCenter.x, this.containerDom.clientWidth - this.renderCenter.x, this.renderCenter.y];
|
|
7088
|
+
})();
|
|
7089
|
+
n < 183 ? (this.canvas.style.top = -e / 2 + "px", this.canvas.style.left = 90 + "px") : s < 183 ? (this.canvas.style.top = 90 + "px", this.canvas.style.left = -t / 2 + "px") : o < 183 ? (this.canvas.style.top = -e / 2 + "px", this.canvas.style.left = -t - 90 + "px") : (this.canvas.style.left = -t / 2 + "px", this.canvas.style.top = -e - 90 + "px"), this.canvas.style.transform = `translate3d(${n}px, ${s}px, 10px)`, this.offset = { x: n, y: s };
|
|
7052
7090
|
}
|
|
7053
7091
|
render() {
|
|
7054
|
-
if (!this.five.renderer || !this.
|
|
7092
|
+
if (!this.five.renderer || !this.containerDom)
|
|
7055
7093
|
return;
|
|
7056
|
-
const { scale: t, context: e, width: n, height: o } = this, s = this.
|
|
7057
|
-
|
|
7058
|
-
|
|
7059
|
-
|
|
7094
|
+
const { scale: t, context: e, width: n, height: o } = this, s = this.five.renderer.getSize(new E.Vector2()), [r, a] = (() => {
|
|
7095
|
+
if (this.renderCenter instanceof E.Vector3) {
|
|
7096
|
+
const v = this.renderCenter.clone().project(this.five.camera);
|
|
7097
|
+
return [(v.x + 1) / 2 * s.x, (v.y + 1) / 2 * s.y];
|
|
7098
|
+
} else
|
|
7099
|
+
return [this.renderCenter.x, s.y - this.renderCenter.y];
|
|
7100
|
+
})(), l = 1, c = n / t, d = o / t, h = l * t, u = this.five.getPixels(r - c / 2, a - c / 2, c, d, h), p = Math.floor(n * l), m = Math.floor(o * l);
|
|
7101
|
+
ch(u, p, m);
|
|
7102
|
+
const g = new ImageData(p, m);
|
|
7103
|
+
g.data.set(u), e.putImageData(g, 0, 0);
|
|
7060
7104
|
}
|
|
7061
7105
|
initStyle() {
|
|
7062
7106
|
const t = this.canvas;
|
|
@@ -7064,6 +7108,13 @@ class dh {
|
|
|
7064
7108
|
const e = 1;
|
|
7065
7109
|
t.setAttribute("width", (this.width * e).toString()), t.setAttribute("height", (this.height * e).toString()), t.style.border = "2px solid rgba(255,255,255,0.20)", t.style.width = this.width + "px", t.style.height = this.height + "px", t.style.top = this.config.initialPosition.top, t.style.left = this.config.initialPosition.left, t.style.transform = "translate(0,0,100px)", this.config.dragEnabled && (this.canvas.style.cursor = "pointer");
|
|
7066
7110
|
}
|
|
7111
|
+
getPanOffset(t, e) {
|
|
7112
|
+
const {
|
|
7113
|
+
min: { x: n, y: o },
|
|
7114
|
+
max: { x: s, y: r }
|
|
7115
|
+
} = e, a = this.offset.x + t.deltaX, l = this.offset.y + t.deltaY, c = Math.min(Math.max(a, n), s), d = Math.min(Math.max(l, o), r);
|
|
7116
|
+
return { translateX: c, translateY: d };
|
|
7117
|
+
}
|
|
7067
7118
|
}
|
|
7068
7119
|
class uh {
|
|
7069
7120
|
constructor(t) {
|
|
@@ -7097,7 +7148,7 @@ class $e {
|
|
|
7097
7148
|
f(this, "lines");
|
|
7098
7149
|
f(this, "position");
|
|
7099
7150
|
f(this, "type", "point");
|
|
7100
|
-
this.id =
|
|
7151
|
+
this.id = He(), this.lines = [], this.position = new _(), t instanceof _ ? this.position.copy(t) : this.position.fromArray(t);
|
|
7101
7152
|
}
|
|
7102
7153
|
toJson() {
|
|
7103
7154
|
return { id: this.id, position: this.position.toArray() };
|
|
@@ -7114,7 +7165,7 @@ class $e {
|
|
|
7114
7165
|
}
|
|
7115
7166
|
class lo {
|
|
7116
7167
|
constructor(t) {
|
|
7117
|
-
f(this, "id",
|
|
7168
|
+
f(this, "id", He());
|
|
7118
7169
|
f(this, "lines", []);
|
|
7119
7170
|
f(this, "points", []);
|
|
7120
7171
|
f(this, "visiblePanoIndexes");
|
|
@@ -7286,13 +7337,13 @@ function xh(i) {
|
|
|
7286
7337
|
const y = w.clientWidth, x = w.clientHeight, L = y / 2, C = x / 2;
|
|
7287
7338
|
if (e.points.length < 2)
|
|
7288
7339
|
return;
|
|
7289
|
-
const [S, k] = e.points, F = S.position.clone().project(A.camera),
|
|
7290
|
-
if ((() => !(Math.abs(F.z) > 1 || Math.abs(
|
|
7340
|
+
const [S, k] = e.points, F = S.position.clone().project(A.camera), O = k.position.clone().project(A.camera), G = F.clone().lerp(O, 0.5), Y = new Ge(F.x * L, F.y * C), P = new Ge(O.x * L, O.y * C), I = Y.distanceTo(P);
|
|
7341
|
+
if ((() => !(Math.abs(F.z) > 1 || Math.abs(O.z) > 1 || !pt(F) && !pt(O) || !pt(G) || I === 0))() === !1) {
|
|
7291
7342
|
s.style.opacity = "0", s.style.pointerEvents = "none";
|
|
7292
7343
|
return;
|
|
7293
7344
|
}
|
|
7294
|
-
const
|
|
7295
|
-
s.style.transform = `translate(${
|
|
7345
|
+
const H = (G.x + 1) / 2 * y, N = -(G.y - 1) / 2 * x, X = -(Math.atan((Y.y - P.y) / (Y.x - P.x)) * 180) / Math.PI, U = s.parentElement && o.clientWidth > I ? -20 : 0;
|
|
7346
|
+
s.style.transform = `translate(${H}px, ${N}px) rotate(${X}deg) translateY(${U}px)`, s.style.opacity = "1", s.style.pointerEvents = t ? "all" : "none", r && r.update({ line: e, polyline: e.getPolyline() });
|
|
7296
7347
|
const le = g();
|
|
7297
7348
|
o.innerText = le;
|
|
7298
7349
|
}
|
|
@@ -7328,7 +7379,7 @@ class $t {
|
|
|
7328
7379
|
f(this, "distanceItem");
|
|
7329
7380
|
f(this, "polyline");
|
|
7330
7381
|
var o;
|
|
7331
|
-
if (this.id =
|
|
7382
|
+
if (this.id = He(), this.model = n, t.id === e.id)
|
|
7332
7383
|
throw new Error("\u65E0\u6548\u7684\u7EBF\u6BB5, \u4E00\u4E2A\u70B9\u65E0\u6CD5\u6784\u6210\u7EBF\u6BB5");
|
|
7333
7384
|
typeof n.config.defaultText == "string" && (this.text = n.config.defaultText), this.hook = new Ye(), this.points = [t, e], this.mesh = fs(this, "normal"), this.lightMesh = fs(this, "light"), this.distanceItem = xh({
|
|
7334
7385
|
line: this,
|
|
@@ -7461,17 +7512,17 @@ class hi {
|
|
|
7461
7512
|
return this.mouseGroup;
|
|
7462
7513
|
}
|
|
7463
7514
|
dispose() {
|
|
7464
|
-
this.disposed = !0, this.magnifier.
|
|
7515
|
+
this.disposed = !0, this.magnifier.disable(), this.model.getAllLines().forEach((e) => this.removeLine(e));
|
|
7465
7516
|
const t = this.five.getElement();
|
|
7466
7517
|
t && (t.removeEventListener("touchstart", Mn), t.removeEventListener("contextmenu", Mn));
|
|
7467
7518
|
}
|
|
7468
7519
|
}
|
|
7469
|
-
function
|
|
7520
|
+
function Oi(i) {
|
|
7470
7521
|
const { x: t, y: e } = i.center, { clientWidth: n, clientHeight: o } = i.target, s = i.target.getBoundingClientRect(), r = new Ge(t, e).sub(new Ge(s.left, s.top)), a = new Ge(r.x / n * 2 - 1, -(r.y / o) * 2 + 1);
|
|
7471
7522
|
return { point: r, ndcPoint: a };
|
|
7472
7523
|
}
|
|
7473
7524
|
function Ci(i, t) {
|
|
7474
|
-
const e =
|
|
7525
|
+
const e = Oi(t).ndcPoint, n = new Qt();
|
|
7475
7526
|
return n.setFromCamera(e, i.camera), i.model.intersectRaycaster(n);
|
|
7476
7527
|
}
|
|
7477
7528
|
class Tn extends hi {
|
|
@@ -7488,7 +7539,7 @@ class Tn extends hi {
|
|
|
7488
7539
|
f(this, "hammer");
|
|
7489
7540
|
f(this, "onIntersectionUpdate", ro((e, n) => {
|
|
7490
7541
|
var s;
|
|
7491
|
-
this.hasAppendMouseGroup === !1 && (this.group.add(this.mouseGroup), this.magnifier.appendTo(this.container), this.hasAppendMouseGroup = !0);
|
|
7542
|
+
this.hasAppendMouseGroup === !1 && (this.group.add(this.mouseGroup), this.magnifier.appendTo(this.container), this.magnifier.enable(), this.hasAppendMouseGroup = !0);
|
|
7492
7543
|
const o = this.updateMouseGroup(e, n).position;
|
|
7493
7544
|
(s = this.pressPoint) == null || s.position.copy(o), this.updateDashed(), requestAnimationFrame(() => this.magnifier.renderWithPoint(this.mouseGroup.position)), this.five.needsRender = !0;
|
|
7494
7545
|
}, 20));
|
|
@@ -7500,10 +7551,10 @@ class Tn extends hi {
|
|
|
7500
7551
|
if (this.polyline.lines.length === 0 && !this.lastPoint || !this.lastPoint)
|
|
7501
7552
|
return;
|
|
7502
7553
|
const e = this.polyline.lines[this.polyline.lines.length - 1], n = e.findAnotherPoint(this.lastPoint);
|
|
7503
|
-
!n || (this.lastPoint = n, this.hook.emit("anchorChange", n.position), this.group.remove(e.mesh), this.polyline.removeLine(e), this.hasAppendMouseGroup = !1, this.mouseGroup.position.copy(this.lastPoint.position), this.group.remove(this.mouseGroup), e.distanceItem.remove(), this.updateDashed(), this.magnifier.
|
|
7554
|
+
!n || (this.lastPoint = n, this.hook.emit("anchorChange", n.position), this.group.remove(e.mesh), this.polyline.removeLine(e), this.hasAppendMouseGroup = !1, this.mouseGroup.position.copy(this.lastPoint.position), this.group.remove(this.mouseGroup), e.distanceItem.remove(), this.updateDashed(), this.magnifier.disable(), this.five.needsRender = !0);
|
|
7504
7555
|
});
|
|
7505
7556
|
f(this, "onMouseLeave", () => {
|
|
7506
|
-
this.magnifier.
|
|
7557
|
+
this.magnifier.disable(), this.group.remove(this.mouseGroup), this.hasAppendMouseGroup = !1, this.lastPoint && (this.mouseGroup.position.copy(this.lastPoint.position), this.updateDashed());
|
|
7507
7558
|
});
|
|
7508
7559
|
f(this, "onLineChanged", () => {
|
|
7509
7560
|
this.hook.emit("editedPolylineChange", this.polyline);
|
|
@@ -7533,7 +7584,7 @@ class Tn extends hi {
|
|
|
7533
7584
|
const r = new $t(s, o, this.model);
|
|
7534
7585
|
r.distanceItem.setItemSelectable(!1), r.distanceItem.appendTo(this.container), this.polyline.addLine(r), this.group.add(r.mesh), r.distanceItem.update(this.five);
|
|
7535
7586
|
}
|
|
7536
|
-
this.pressPoint = void 0, this.hasAppendMouseGroup = !1, this.magnifier.
|
|
7587
|
+
this.pressPoint = void 0, this.hasAppendMouseGroup = !1, this.magnifier.disable(), this.group.remove(this.mouseGroup), this.updateDashed(), this.five.needsRender = !0, this.hook.emit("anchorChange", o.position);
|
|
7537
7588
|
});
|
|
7538
7589
|
f(this, "onWantsTapGesture", () => !1);
|
|
7539
7590
|
f(this, "onWantsToMoveToPano", () => !1);
|
|
@@ -7701,7 +7752,7 @@ function zh(i, t, e, n) {
|
|
|
7701
7752
|
}).sort((a, l) => a.distance - l.distance);
|
|
7702
7753
|
return typeof n == "number" && r[0].distance > n ? null : r[0];
|
|
7703
7754
|
}
|
|
7704
|
-
function
|
|
7755
|
+
function Hi(i) {
|
|
7705
7756
|
const t = (s, r, a) => {
|
|
7706
7757
|
const l = s.lines.find((d) => d.points.findIndex(({ id: u }) => u === s.id) !== r);
|
|
7707
7758
|
if (!l)
|
|
@@ -7724,27 +7775,27 @@ class gs extends hi {
|
|
|
7724
7775
|
var a;
|
|
7725
7776
|
if (this.model.getAllLines().length === 0 || !this.fiveElement)
|
|
7726
7777
|
return;
|
|
7727
|
-
const n =
|
|
7778
|
+
const n = Oi(e).point, o = (a = zh(this.five, this.model.getAllPoints(), n, 20)) == null ? void 0 : a.point;
|
|
7728
7779
|
if (!o) {
|
|
7729
7780
|
this.editPointState = void 0;
|
|
7730
7781
|
return;
|
|
7731
7782
|
}
|
|
7732
7783
|
const s = {
|
|
7733
7784
|
point: o,
|
|
7734
|
-
associatedLines:
|
|
7785
|
+
associatedLines: Hi(o.lines[0])
|
|
7735
7786
|
};
|
|
7736
7787
|
this.hook.emit("wantsDragLine", {
|
|
7737
7788
|
point: o.id,
|
|
7738
7789
|
lines: s.associatedLines.map(({ id: l }) => l)
|
|
7739
|
-
}) || (this.editPointState = s, this.magnifier.appendTo(this.container), this.group.add(this.mouseGroup));
|
|
7790
|
+
}) || (this.editPointState = s, this.magnifier.appendTo(this.container), this.magnifier.enable(), this.group.add(this.mouseGroup));
|
|
7740
7791
|
});
|
|
7741
7792
|
f(this, "onPanEnd", () => {
|
|
7742
|
-
!this.editPointState || (this.editPointState.point.lines.forEach((e) => e.mesh.setMaterial({ dashed: !1 })), this.highlightLines(this.editPointState.associatedLines), this.editPointState = void 0, this.magnifier.
|
|
7793
|
+
!this.editPointState || (this.editPointState.point.lines.forEach((e) => e.mesh.setMaterial({ dashed: !1 })), this.highlightLines(this.editPointState.associatedLines), this.editPointState = void 0, this.magnifier.disable(), this.group.remove(this.mouseGroup));
|
|
7743
7794
|
});
|
|
7744
7795
|
f(this, "onPan", (e) => {
|
|
7745
7796
|
if (!this.editPointState || !this.fiveElement)
|
|
7746
7797
|
return;
|
|
7747
|
-
const n =
|
|
7798
|
+
const n = Oi(e).ndcPoint, o = new Qt();
|
|
7748
7799
|
o.setFromCamera(n, this.five.camera);
|
|
7749
7800
|
const [s] = this.five.model.intersectRaycaster(o);
|
|
7750
7801
|
!s || this.onIntersectionUpdate(s);
|
|
@@ -7793,7 +7844,7 @@ class gs extends hi {
|
|
|
7793
7844
|
return this.chooseLine(u), !1;
|
|
7794
7845
|
});
|
|
7795
7846
|
f(this, "chooseLine", (e) => {
|
|
7796
|
-
const n =
|
|
7847
|
+
const n = Hi(e);
|
|
7797
7848
|
this.highlightLines(n), this.five.needsRender = !0, this.hook.emit(
|
|
7798
7849
|
"selectedChange",
|
|
7799
7850
|
n.map((o) => o)
|
|
@@ -7917,7 +7968,7 @@ function Qh(i, t) {
|
|
|
7917
7968
|
y: -(i.y - o) / n * 2 + 1
|
|
7918
7969
|
});
|
|
7919
7970
|
}
|
|
7920
|
-
const Rh = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbYAAAGwCAYAAADFUEBtAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAABtqADAAQAAAABAAABsAAAAABTZ8U6AAAtiklEQVR4Ae2dAXJbSbJdp+d7AfYSHOGVeAPek5fkNXgLjviLmRkZl+CRbtc8UBKRRalZpyIesiorMx/eIcjb+QCh//Y3hwQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkMEbgj7FKFpLA4QS+fPnyx23czJc//V498h2Oy8uXwDYCf/oF3HYWC0vgAAI3QfuP22V+uR35vYplrOsX/03w/kWAVgISmCPwX+ZKWUkCErgR+PvtiKjF9uj/iMx+C1/HOZeABJ4koLA9CdB0CRQBxKxFrLa/Tung7Ni+InEigTkCCtscSytJIATo2BC3dGYIWfvs2Hy9SGATAYVtE1jLHkkgohbxQsACgTkWn8IWEg4JbCCgsG2AasljCXArMgB6DpAWs3/i1EpAArMEFLZZnlY7m0C6snwyMuPqFiT+2Cvhi98hAQk8SUBhexKg6RIoAtyKjItbj1jCWGPxayUggSECCtsQSMtI4EYgYhVx624tYOK/8mXPIQEJDBNQ2IaBWu5oAnRh3GZkHSiIG8J3NCgvXgI7CShsO+la+zQCEa0ciBgWDlnji3VIQAIbCChsG6Ba8mgCdGSxjCsRu/IRr5WABJ4goLA9Ac9UCSwE6Nj6Y/0RsBxXviXdpQQkMEFAYZugaA0J3AnQhdG1xYsPccPKTAIS2ERAYdsE1rJHEohocQsy8xwZdGuse+8e4aMEJDBGQGEbQ2khCXz94AgCxkf8gwZf5u3P2iEBCQwSUNgGYVpKAjcC+eYRRKw7NeaBpLCFgkMCmwgobJvAWvZIAhE1bkUGAAK3zq/W8TkkIIEBAgrbAERLSOCVQISsPzgSd3x0a8xjczgkIIENBBS2DVAteSwBBGsVrV4zxx4LywuXwC4CCtsustY9kUDEio4t8/W9tO7cTuTjNUvgQwgobB+C2ZMcQoD317BX4kanhj0EjZcpgY8joLB9HGvP9PkJRKwiai1odm2f/+fuFf5mBBS23+wH4tP5yxPgViRdWy6I7iwihx/fX/6CvQAJ/G4EFLbf7Sfi8/krE+DfsEW0umvrOdensEFCK4FhAgrbMFDLHU0AQUO0sHRq3JaMdUhAApsIKGybwFr2SAIRsr7ViLAFRsSsha33su+QgASGCChsQyAtI4EbgYhabkdmRLi6M1uFbF2/JPkgAQk8T0Bhe56hFSQAgYgVHVt8iBsWX2zHZe2QgASGCChsQyAtI4EbgQhYjh6s23Yn17HOJSCBAQIK2wBES0jglUC6sBy8l9Zg8MUmBqHrGOcSkMAAAYVtAKIlJPBKIGLFsULBT7emsK2EXEtgiIDCNgTSMhK4EUC8EK0WsZ6zLzQJSGADAYVtA1RLHksggtUfCmkB63kAretjoXnhEpgmoLBNE7XeyQQQNrqzlUX22VPYVjquJTBEQGEbAmkZCdwI8KGQt0SLPazgJCCBYQIK2zBQyx1PgE9FAiICli4NG7+iFgoOCWwioLBtAmvZIwnw/hpfhsxtxxUGQrf6XUtAAgMEFLYBiJaQwCuBCBu/UxEvhG4F9NbeGutaAhL4SQL8Ev5kmuESkMAFgdxi5Fbko9uNj/wX5XRJQALvIaCwvYeaORK4JhBRQ7hi37rlSNx1Jb0SkMC7CShs70ZnogT+jUDEiiObLV6ZR+gYvYdPKwEJDBBQ2AYgWkICrwQQNUSsxWt9X633BCgBCQwSUNgGYVrqeAIRKz4wsgrX99bHwxOABKYIKGxTJK0jgfutx/XDI7zPxm1IBA4rNwlIYJiAwjYM1HJHE+DDIy1azLFHA/LiJfARBBS2j6DsOU4hEPFaOzauvTu3xCl0kNFKYJiAwjYM1HJHE0CwEC3W3IZE3AKJmKOBefES2EFAYdtB1ZqnEki3lq/TYiBkLWL4iNFKQALDBBS2YaCWO5oAHRoQ1tuSLWrZc0hAAhsIKGwboFryWAIRKwQLEYvYPZofC8oLl8BOAgrbTrrWPo1Ad2x0a2FwNe/bk6dx8nolsJWAwrYVr8UPIxCxomPj0hGw2O7c2NdKQALDBBS2YaCWO5pAxGsVsgbSe8x737kEJDBAQGEbgGgJCbwSSLdGx5bujPkKiM5t9buWgAQGCChsAxAtIYFXAmvH9gjMI8F7FK9fAhL4CQIK20/AMlQC3yEQYYto0ZHFZvRtR/bad4/yUQISGCGgsI1gtIgEXgjQsSFa2MaDD9t7ziUggQECCtsAREtI4JVAurUIFscVmKsu7ipOnwQk8E4CCts7wZkmgQcE8jvF7cYrEbvyPSilWwISeA8Bhe091MyRwDWBfE9kd2tXtxvxYa8r6ZWABN5NQGF7NzoTJfBvBBC1WDozgvC1ZU8rAQkMElDYBmFa6ngCES0+Fbl+pD9Chy9xORwSkMAGAgrbBqiWPJYAgoW4NQj24lu7uY5zLgEJPElAYXsSoOkSKAIRtO7KEDC6M9aJwVfpTiUggQkCCtsERWtI4E6gu7J4unPLHsKWPYUtFBwS2EBAYdsA1ZLHEohY0bFFxBC6R/NjQXnhEthJQGHbSdfapxFAyHLd3a09mp/Gx+uVwIcQUNg+BLMnOYRABIyOjUtmna6NW5HxeSsSQloJDBNQ2IaBWu54AnRtCFeLGbck/3WjxP7xwAQggWkCCts0UeudTCDfPJKjRwsYc76hpOOcS0ACQwQUtiGQlpHAjUCEK7cZ6cwChTmdG+KGTYxDAhIYJKCwDcK01PEEIlYcwEDAsKuftVYCEhgioLANgbSMBG4EHolad22JYS00CUhgAwGFbQNUSx5LILch+RRkQ6Bba8u845xLQAIDBBS2AYiWkMArgYhVv8fW76vRpeETmgQksImAwrYJrGWPJBBh4wiAtSt7a+9IYF60BHYQUNh2ULXmqQQQrti1M0Pk2GN9KiuvWwLbCChs29Ba+EACvMcWUVvfa+NWZLBE1BS2kHBIYAMBhW0DVEseTQDRamFrUcs8h0MCEthEQGHbBNayRxKImPGtIi1e3Z1l3kJ3JCgvWgI7CShsO+la+zQCb92KbBYKW9NwLoFhAgrbMFDLHU2A25DdoV0ByX7fqryK0ScBCbyTgML2TnCmSeCCAILVHRlzbNIyd0hAApsIKGybwFr2SALpwujaAED3ho1/jSFWKwEJDBBQ2AYgWkICrwRasBCytTvDLzQJSGATAYVtE1jLHkkgorW+d/ZIyNa4I4F50RLYQUBh20HVmqcSQNjo0rJmDpNHQse+VgISeJKAwvYkQNMlUATW99giao86MwWuwDmVwCQBhW2SprUk8OevyqKD+9cNDN1bW3lJQAIbCChsG6Ba8lgC6c440q0hYvk2Egb+7DkkIIENBBS2DVAteSyBiFVEbL0F2SKWPYcEJLCRgMK2Ea6ljyPQ3RoXH1HLgaAhco/eeyNPKwEJvJOAwvZOcKZJ4IIAYhW7Chni1vaihC4JSOBZAgrbswTNl8A3AhEtxI3ODCFLVPu+ZTmTgARGCShsozgtdjiBCBdHUKRruxKz9ifOIQEJDBJQ2AZhWup4AhGxdGyxLV6IG4CyXn3saSUggScJKGxPAjRdAkUgYsX7a9ySbIEjND6HBCSwiYDCtgmsZY8kQLfW3VjPgRLflZ99rQQk8AQBhe0JeKZK4IIAHRvCRceGTUrPL0rokoAEniGgsD1Dz1wJ/JnA2rGtnVm+Witj9d+9PkpAAiMEFLYRjBaRwAsBhC2W0d0Z++0jTisBCQwRUNiGQFpGAq8E8pVa6cgQLyyAWHOrEr9WAhIYIqCwDYG0jARuBNKR5Yh4ddeGiLUf3y3UIQEJTBJQ2CZpWut0AtxqjGjl6O6MOYwUNkhoJTBMQGEbBmq5owkgaIgWlk4NccMeDcuLl8AuAgrbLrLWPZEAtyK59ghbixjC1z5itRKQwBABhW0IpGUk8EqA99jo1uLuuaLmS0UCmwkobJsBW/4oAnRsES9Gd2nxIXJY4rQSkMAQAYVtCKRlJHAjgFjRtQVKfBE6fKyz55CABDYQUNg2QLXksQQiWhGwDESuhax9zO/RPkpAAmMEFLYxlBaSwIuYRbA4rpCke/N9tisy+iQwREBhGwJpGQncCETQeJ8tQHivLf51Hp9DAhLYQEBh2wDVkscSiFjlK7UYLV49Z18rAQlsIKCwbYBqyWMJRNT4kMgVhIhbd25XMfokIIEnCShsTwI0XQJFIMJFZ4Zlm/fV8PMhE/a1EpDAEAGFbQikZSRwIxDRWju2+CJq7Y8PgbtNHRKQwCQBhW2SprVOJ0AXhg0PRA02CBoWv1YCEhgioLANgbSMBG4EIlYRtVhuPcZm4LuvfJSABLYRUNi2obXwoQS45dhdG6IWmyMDe1/5KAEJjBFQ2MZQWkgCLx/1R7xi6dqYNyKFrWk4l8AgAYVtEKaljifQohYY3bVF5BA6bk8eD0wAEthBQGHbQdWaJxNAzBC5sEDQ6NxYn8zJa5fANgIK2za0Fj6QQIQrwhbbo9eZ/+t2tK9jnUtAAk8SUNieBGi6BIpARC3fPtIdGfPYDAQNe/f6KAEJjBFQ2MZQWkgCL6IVwWrRYo4Npv4+SbFJQALDBBS2YaCWO5rA+l2RLWbducXfe0dD8+IlME1AYZsmar2TCSBYV6KFD8uHTE7m5bVLYAsBhW0LVoseSmAVtn5fjXnQIG6HYvKyJbCXgMK2l6/VzyPQnVgLWM9DpePOo+QVS2AjAYVtI1xLH0cgYpWju7OGEHFjbxW6jnMuAQk8QUBhewKeqRJYCETUECwsIRG0+HIgbuxpJSCBQQIK2yBMS0ngRqA7NoQMMPmH2Rmr/+71UQISGCGgsI1gtIgEXghE1DJiW+BenLcH/vE2a60EJLCBgMK2AaoljyWQTqxFDaFrIN21td+5BCQwREBhGwJpGQncCCBsb91qpGtLjEMCEthAQGHbANWSxxJIh4aoxfIhkRaxK9+xwLxwCewgoLDtoGrNkwn090C2oMEkPm5H4tNKQAKDBBS2QZiWOp5Ad2x8vD9Q6NIyj7ARl7VDAhIYJqCwDQO13NEEEK1AoFuLqK0fImnROxqYFy+BHQQUth1UrXkqAYQN4cLGn3kGc4Tv7vVRAhIYI6CwjaG0kARe/p1aBKtFizk2mHouNglIYJiAwjYM1HLHE8htR7qzfi+tPzASYVPcjn+pCGAXAYVtF1nrnkiA99KwLV78+zW49B4+rQQkMEBAYRuAaAkJvBKIoHWXBhhEjK4ta3zEaCUggSECCtsQSMtI4JVAhC23IhE4bksiZr0WmgQksIGAwrYBqiWPJRDxQtgQstiIGevu2o4F5YVLYCcBhW0nXWufRgDxynX3e2qIXfzME+uQgAQ2EFDYNkC15LEEIlqrcCFgsd6GPPal4YV/JAGF7SNpe65TCETEELi+ZsWtaTiXwCYCCtsmsJY9kgCChqhh42f4HhsktBLYREBh2wTWskcSQNhyyzGiltGiljX+zB0SkMAGAscI25cvX/IHhj8y+ePCmj807QvqK3/7EkMNbO8zZ++RTdy6l9rk9/6Vb41lfRW7nidr6pPXMfERs+53feKI7Rr4Oqb3OX/73po/E881XFmeZyz7PA+ulfVqEx/ff3+1mSen31Pjk5F0bP/r9pr8H68x2SM2+6yxN9fX/9UN+T9iiaHO9+zVuR/l/ExsarwVv14fzxvLc2Dddt1jvdrkxIddz5l175PPua7W1GLvkU3tf77WJyY+ancd5uwnnnnb+FMzg5rYl7p//PEH9e9RBz3mF/CIUcLWfxjzyTXWWP4oscYmlr237Fs11zxi8zPIeTjXapPHf4QkJ4P42AxyqMm58K9xWa+xySEPS17Oj6/j2E8t/Fd1E7fmX8URs8ZTf/Wva/K7Nr63bNd/VLPzmV/FZi9HRvb5gxObwR8c/ohhs88c2778IYu/97LffzTZw2b/H7ej6/Temk9s/OQQv1rOu/rJw2afA99b9lHd9TzUbD/ztT6x+L8X92h/zU8cz5e9tsw7rmtnP/kZ8ffRudknjvNhqYcl78tN3DI/buSX7tTRf3xggC82Lwj+OF3tx3e1T+yP2h954fHHkfPFMu98fFfn5nrIJbbzH+Vx/t7vfObZT2zWnC++jPU8iem8xLSv89e4xDK6buJy/hw/Ovqcb51nrbcKZ+dSExZXNvU6Z62/ruGxXh/X/1YtePC8sDkHdcnnua7nz5o8LHWJpQZrLPGssWt8r3lexLYlLpbrz37W7K35+BOXwfpR/j3q22PHrfl93m8Z386Bjzhs/OvzJLZt4juO/B/l37WOmK9gPvtF8wLJdeaFwos1/gzWvIiIaU74Ov6t/MSxj8XH+fCzXm3iGZwfG3/nM8dSa81nPzYHce0nJxY/cdj2r/PEXMVR79Fe7yeGutjsM+Jb/dSNfZTfeeR3Xup3fmLyOiCPvcSR3zEdmzlHxxLfIpl6/Zx5TvFnsE5u1+rnc5Wf82cQh717v/m7bmIyOE/m5GGv4snDJi+j62TNPv5ex5d1DvaxxMXC+Tb9Wi/zq/yOoUbi1rqPfJ2feY/Uy0GtWHyJw48Pm72MrDPIyxxf5gzysPF37ayzhy/r4wYv9k9/4a8tef/A84Pnhx//jwziyMPiTw3q9rmofRXHXudSF9sxV3HU/dGf51r36rlyzr4ezt2245ivNjV4jn1u5uyteVn3Na1xa37WHMntedbkU3PNT8w6Eksce6yx1GUfm33yiY3lIK7zE5+jfcTFdp2sE8ugLjH4Y1MP/2qzT27mGTzv++r+yHMiljr4OzZz9vE/Wnc+tcnBJqbj4qfe6ienY/CRg43/rXzyiOm8dd5r8rDkZ524PvDFZvAzfVRvzb2q3b571YMeAfjpL/n1Pba+zrw4+OH3PDH9guo5+eRhOx9fYpljyWfvkZ+43ud5cK7ssc8eddtSizwsfmpc2fiI73N0/TUvex17lc8+ucRQt9f4YtfR+WvNxLKPJZ81ltzVEo9NfD+3zo8fMcDGx4Gva2VOjbbUwpe4+HqwF9t77WeePGJi8WOzz7xtzxOTQX722Mf3EvAakzn7+B+t33pu1CaGWmt9aseusexd5RLfMZyz49eanJ+/oeSvljxqYhPHQa2265w19ThP/PioHd/fTn1/LdfODyXzTz0e/JB5QeTae86Lpn0dgx+77nV+Yoh7ZJPfo/Px44td6xATyx4+1uRhiWW/4zlX7+HrOOarJfYqfz3/mpucNYY6jyznoxbrjseXmPaT05bYxBGb/cyzhw+bPQYxWWfOQU0sudi38rNHHpa678knB8u5Y+N7dA72yMOSx3rNz34G+6u97357TH5iOo6aiWp/1j2yR2zH4cNmjwMfdXpNjfYRxx7r2PgSu+7hwxIb26PzMl/XV8+j8zN/ibn4j/k17tOujxG2+lQkP8x8goixvlh4MeHHrvHxc/Re56/7iVvrxUdOz78Xl1gG+Vc5xMQmjueExR8bH7WyZsTX/vU87LW/5+THwj77HFf5OTf7mTPwYePPnLHWyh7nJ2a12adG5+MjvuPwJSZHrquvjXUsMV375r48Z/xdJ2tG51Mztv3MyYmND3/i19F7PeccxLPHOpZ6WGLIxU9O+5l3nc7HH9/qp17s1R7njWUfy3mJaT/ztX77yefnxB7noi412Mfix+LvPM7RPuLIi+39rK9i4j9mHCNsrz9RXihZXv3wr3zJwc8LiHUs80c128/51xz8if3e4DkQl1rk9x7naB9x2euDWm2pm1/crtX1Et97VzWJ59ysySW/1+27On+fp2NT42oQc/UcEo+fuK7B3vfisr/m57nnWGskltE5mRPLnDhs9nsQv/qpiz+Wj4uzlzqchzhq95r4+NpPPjnEscbih0XWfaxxrGNzPvI5P+uOy/yqJn5ief5Xsfg6h3jOzZrY2Az899WfnzP71CAmlvz2vVVr3eu8P80f3KX6U8xnXZwmbPk58kLqF8jqYy/+HPmFzFjj7t5/93c+MdjUyD4xsWtd9vAnt+dZM9b8R3Hx9x5/ZDgXlpi1LudjnzV5WfOHE1+fkzwsTK/Oc5XP+ZLPfizz7HfNrDlX5gzyk0c8cdTC4k9ufBzkxZ9BXPyJiSWG9ZVdfc0ve9S9Tb/O8WU/R0b77p5ve71+FNf+zHnu+FMj817Hl5HnjJ/ng8WfOOax7MefwR7+Pv8av66JTS75WOq+nOT1AR/xxGabeWoyf037+hy/l8/+Vd66lxjOg01Mz7vOVX728ZP3Yr0VCbozLD98XgyPrjpxxK4x5LKPTVz2Hu3jX+utecRR961fNGr1eeMjl3mv4+McmWes67v3/sgfj6yos8ZzfvZjmd+r3B/xJT5zbMdk3vmcfz1n4lZf53Eu7NW5spf62buqdXN/vY7OJy+5OThH4vGtlpyOTXwG58fevffHxJPDudbnSt7qT4Xk9CD2ytexnLPPT05qJPbqfPg6n1h8qdPzrMlj72q/fT3v3DU/cVwXOcRjk3M12CcPi5+crNtHHPucn3XHxtfrnmcvtdZ6iemaWZOHvbnOHEcBuP0XTDpUXgBYutZ13X7y2kf8lU3cz8RSI69C8mLxY/FdxcXXcdTBh1391GT/LftWLM+J/D7P1RzfWzUf1cLfdj0/e12fmCvb8ez3c4yPmNWy9z9vk/+WxW2Qmz9Iicfyx+g/b77/9+rnD9dqb9tf/3iRF9txicn60X7HMu9Y8qlBzCOb+OSvz+Mqntiuje+RvapDfnJ6/3vPoc+RzjK5Gev1v1Vnje3zrx127/U85/zR8/dzuXquXZfzr8+R9bHfPMLXNAXgpx+3e878wD/9tXqBH0/g9h9O//d21v96O/LHpwfr2LwGI3T/5/Z6/N8d5FwCEpghcJSwzSCzigQeEmjhajFLAl1b/BwPC7khAQm8n4DC9n52ZkpgJYBgxUbIesSXQcx95aMEJDBOQGEbR2rBwwlwu/vqPbagQfQQusNxefkSmCegsM0zteK5BOjGrsQLISPmXEpeuQQ2E1DYNgO2/FEE0q3RsWEDIPN+jy0+hC5zhwQkMEhAYRuEaanjCXQ31mIWMAjZao+HJgAJTBNQ2KaJWu9kAhEtOrV0aHRpfJCkhQ+BO5mX1y6BLQQUti1YLXoogVW4ELTg6D3Wh2LysiWwl4DCtpev1c8ikG5tvQWZT0ciarF0cZk7JCCBDQQUtg1QLXk0gQgW4hYQfO1Ri9rRgLx4CewmoLDtJmz9kwhExBC12Aw6tPvq/hiRs2NrIs4lMEhAYRuEaanjCSBYLVrrPOsrsTsengAkMEVAYZsiaR0J/Pt7aWGCkPU83VwLXvYcEpDAEAGFbQikZSRwIxCx4hZkC9c677XgJCCBYQIK2zBQyx1NIKKW99lyqzFHRkSMW4/47Nhe0PgggT0EFLY9XK16JoGIGN0YNiSYt2V+JimvWgIbCShsG+Fa+jgCEat0Y2vHFhB0bYlhHr9DAhIYJqCwDQO13NEEIlociFvWDPZ4Hw6/VgISGCSgsA3CtNTxBHjvDDHjW0cicuxlnkHMfeWjBCQwRkBhG0NpIQm8EOhu7B83D0IGHgQNi18rAQkMEVDYhkBaRgI3AhG1FjagRMQicG0VNuhoJTBMQGEbBmq5owlErFbBYr3ao0F58RLYSUBh20nX2qcRQNhi6dDCgDk2vqvOLn6HBCTwJAGF7UmApkugCETQECw6tGwzx1aKUwlIYJqAwjZN1HonE+A9tu7M4IEPiwCyr5WABIYIKGxDIC0jgRuBiFW6sqvODB9WYBKQwCYCCtsmsJY9kkBEK+JGVxYIzGMZCCBrrQQkMEhAYRuEaanjCUTY8iXI/3E76MxWG0jx4c/aIQEJDBJQ2AZhWup4AnRi+YfZ+daRq5GYDIXtzsFHCYwTUNjGkVrwcAII1ipu+GP7tuThuLx8CcwTUNjmmVrxXALpxujIIl65LZnB+2zM6exeNn2QgARmCShsszytdjaBdGPdmdGdtY9uDd/ZxLx6CWwgoLBtgGrJYwlErLpjy3oVsKy7gzsWlhcugV0EFLZdZK17IoEWslXQmgfi1z7nEpDAEAGFbQikZSRwI8B7Z4jaVWfmrUhfKhLYTEBh2wzY8kcRiKB1N5Y5QgYIRA+LXysBCQwRUNiGQFpGAjcCq7ABJX66N2wLIHFaCUhggIDCNgDREhJ4JcCtyAZCZ7bajnEuAQkMElDYBmFa6ngCEbb827V0ZXRmgZI5IwLHgU8rAQkMElDYBmFa6ngCCFYErr9Si24tgJhjj4cmAAlME1DYpola72QCESveO+NbRx7xUNgekdEvgScJKGxPAjRdAkUgYsXRtx8TEv/qi98hAQkME1DYhoFa7mgCES86tsyvBn7sVYw+CUjgCQIK2xPwTJXAQgBhozNDvFgjelmzt5RwKQEJPEtAYXuWoPkS+EYgwhXBQrQQsKyZJ7pjsnZIQAKDBBS2QZiWOp5ACxZiFiiP5scDE4AEdhBQ2HZQteapBCJgfbvxrXliHRKQwAYCCtsGqJY8lkDECsFi3rcgA6b3jwXlhUtgJwGFbSdda59GIP92rbs0xG3lsIrduu9aAhJ4goDC9gQ8UyWwEIiQRdzyrSN0ZkvIyzIxb+1f5eiTgAR+kIDC9oOgDJPADxCgQ+NbR1aBazHr+Q+UNkQCEvhRAgrbj5IyTgLfJ4CwxeZ24z9eU7j1iI1bYXuFo5HANAGFbZqo9U4mELHiPbYWLubYMOr5ycy8dgmME1DYxpFa8GACEasIG51ZbEaLGL77jo8SkMA4AYVtHKkFDyYQUYuIIWTYRoIP23vOJSCBAQIK2wBES0jglUDEahWsrOngEkbHtsZlzyEBCQwQUNgGIFpCAq8EIlZ9KxIwq4hlvfqI1UpAAk8SUNieBGi6BIoAgoW41daLkHXn1nvOJSCBQQIK2yBMSx1PIIKWI+OtjgwBvEf6KAEJjBJQ2EZxWuxwAqtgIW68r4boZc38cGRevgTmCShs80yteC6BfONIDoSMW48RuJ6fS8grl8AHEFDYPgCypziGAB1bd2P5Wi3WiFuA0M0dA8cLlcBHEVDYPoq05zmFACLG9fK9kVm3mPWcWK0EJDBAQGEbgGgJCbwSiKjRtdGdxTIQM/bwayUggUECCtsgTEsdTyDCxXtsiBg2cDJX1ELCIYGNBBS2jXAtfRwBRCy2Ray7Nm5VEnscJC9YArsJKGy7CVv/JAIRK4Qr1414YWFh1wYJrQQ2EFDYNkC15LEEImAcLV7dsWW/946F5YVLYBcBhW0XWeueSCDdGh1bd2k9DxfE70RGXrMEthNQ2LYj9gQHEYhgRdjoyK46tYNweKkS+DUEFLZfw92zfk4C+UQk3VhEje6Nq6Vz686OPa0EJDBEQGEbAmkZCdwI0LHF5htHMjLvDg6xQ+RegnyQgATmCChscyytJIEQ4N+x0b1d3Y5U1HytSGAjAYVtI1xLH0eAbgxLpxYQiFl3cMcB8oIl8BEEFLaPoOw5TiEQ0aJjyzUjZuv1x/9ob411LQEJ/CQBhe0ngRkugTcIrIKFeHXnlvR1/UZJtyQggZ8loLD9LDHjJfCYQG5BruKWaASOzHWNXysBCQwQUNgGIFpCAq8EELVHwtWd2qMYYUpAAk8SUNieBGi6BIpAxIoPjpT767TFrOdfA5xIQALPE1DYnmdoBQlAIGLFQXcWy0DM2MOvlYAEBgkobIMwLXU8gQhXd2yI3ArmkX+Ncy0BCbyDgML2DmimSOABgXzUP0e+dSQCR2e2dm0K2w2OQwK7CChsu8ha90QCCNY/bhePmCFudHL4E+uQgAQ2EFDYNkC15NEEELBAQLwQt/YdDcmLl8BOAgrbTrrWPo1ARK1vQXL97UPkED1itBKQwBABhW0IpGUkcCPArUhECxELHHzMex2fQwISGCKgsA2BtIwEbgTSmSFuiFrWmTPYV9ggopXAMAGFbRio5Y4msIpWi1fPj4bkxUtgNwGFbTdh659EIOKVri0DkaNzu3u/PSp031g4k8AoAYVtFKfFDieAmCFaLWr4gqj9hyPz8iUwT0Bhm2dqxXMJRLzo2EKhxaypxP9or+OcS0AC7yCgsL0DmikSeEAg3zrCR/sTgnitHdq6flBOtwQk8B4CCtt7qJkjgWsCETI+GZmv1WIgcFlnzsG+VgISGCSgsA3CtNTxBBC2gEj35pCABH4BAYXtF0D3lJ+WAN1aBC63GzOYY/H1e3EvgT5IQAIzBBS2GY5WkQAEImAc7cs8fkbP8WklIIEBAgrbAERLSOCVQMSKW5DdsWWbD4ys/tdUjQQkMEVAYZsiaR0JfPvgSFhE5BAz2MRnpwYNrQQ2EVDYNoG17JEE1vfYELIIHO+p2bEd+dLwoj+SgML2kbQ91wkEELBca3dnzLEnsPAaJfBLCChsvwS7J/2kBCJaEbb1FmT72FPgPumLwMv69QQUtl//M/AZfB4CESsEKxYRyxXiZ97r+BwSkMAQAYVtCKRlJHAjkE9ERrAQLea8rxZI+PqWZfwOCUhgiIDCNgTSMhK4EYho8XH/ALkStPgdEpDARgIK20a4lj6OQLqwfj+tAXBbEktX1zHOJSCBAQIK2wBES0igCHCrsVwvU4RstWucawlI4EkCCtuTAE2XQBG46tjo0LwtWaCcSmAnAYVtJ11rn0agu7W1M2N9GhOvVwIfTkBh+3DknvATE0DYeJ/t0aUmLjEOCUhgAwGFbQNUSx5LoAXLDu3Yl4EX/qsJKGy/+ifg+T8TgXRhdG28p5b1+j4bMZ/p2r0WCfw2BBS23+ZH4RP5BAQQLGwuKaLGrcm+/ZgYhwQksIGAwrYBqiWPJRCxyj/QplsLCEQNseu97DskIIFhAgrbMFDLHU0gIpbj77cjQsYtSOY318s+cVk7JCCBYQIK2zBQyx1NIIIVEfvHKwWEraHQsSXOIQEJbCCgsG2AasmjCUTcGJkjZPgUNEhoJbCJgMK2CaxljySw3mKkY+NWZFsF7siXiBf9EQQUto+g7DlOIRCxasG6muPDnsLG65TAhxFQ2D4MtSc6gEDEioNuLZfdtyMRNOwBWLxECXwsAYXtY3l7ts9NIGLFe2wtXD3/3AS8Ogn8BgQUtt/gh+BT+DQEELa1W4sfH1ax+zQ/di/kdyOgsP1uPxGfz1+ZQLq1CNYqWu1jD/tXvl6fuwR+SwIK22/5Y/FJ/UUJRKz6I/5Z06HFMuJX2KChlcAwAYVtGKjljieAYD2yAGKftVYCEhgioLANgbSMBG4E8o0j/E7la7XWwQdL4lfYVjquJTBEgF/CoXKWkcDxBBCsiBy3H+Nb58QdD0wAEpgmoLBNE7XeyQTSkdGV8d4aotZ+5iez8tolsI2AwrYNrYUPJBARoxPDBsPVvH0HovKSJbCPgMK2j62VzyMQsaIbo2O7ovDW3lW8PglI4CcIKGw/ActQCXyHQISNTgx7ldJxV/v6JCCBJwgobE/AM1UCC4F0ay1adGbYhGee8Zbw3SN8lIAE3kVAYXsXNpMkcEkgYsWtyAQgXtj2Ze6QgAQ2EFDYNkC15LEEEDY6tO7O2pe4FrtjgXnhEthBQGHbQdWapxJAsFq0mGPDhrhTOXndEthKQGHbitfihxH45+168zsV4UqHxm1JOreb68WnsIWEQwKbCChsm8Ba9lgCEbceiFxsBiLH+u71UQISGCOgsI2htJAEXrqxdGm8nwaSVcSyXn3EaiUggScJKGxPAjRdAkUAwULcauvr7UkEDdsxziUggQECCtsAREtI4JVAxIr31d4Sruy9tS9QCUjgCQIK2xPwTJXAQmAVLMSL99UQPdZLuksJSGCCgMI2QdEaErgTWG9B8l5bBI55IlcBvGf7KAEJjBBQ2EYwWkQCLwRasBCzbFzN43NIQAIbCChsG6Ba8lgCCBtCxjrdWt+GZH4sKC9cAjsJKGw76Vr7NAIRMkQrc8bVvH3EaSUggQECCtsAREtI4JVAC1u/p7YCemtvjXUtAQn8JAGF7SeBGS6BNwjkW0f+/rof8boaVx3dVZw+CUjgnQQUtneCM00CFwS6Y7vY/uqyY/uKwokE5gkobPNMrXguAd43i23x6u5t3TuXllcugU0EFLZNYC17JIGIVosbEPD1evWxp5WABJ4koLA9CdB0CRQBhI1u7apTq3CnEpDADgIK2w6q1jyVQH8wJKLGunnYqTUN5xLYQEBh2wDVkscSaNF6mf/xxx9fbuNm7vZYMl64BCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQn8NQn8fyHnyuSABiy2AAAAAElFTkSuQmCC", Hh = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbYAAAGwCAQAAABvWYjmAAByRElEQVR4AezBgQAAAACAoP2pF6kCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACA2bkK4OZ5JPpkh9P2mJmZho6ZmZl54JiZmZmZ72dmhiTO8Q0cMzMUk8Z5ZyvdcXYUla5cvTe7Wnm7sv1P3r/6VNhmGATsEbCCG+OGuDwujUtiBlNooI4qoozIzGQsQCEG6GEp4xxm8R/8A7/Dz/ETLCJgz8EQAbuEGDfK5HU9XA1XwCVRRwlbB6KHBfwXf8TP8EN8B3MI2H1wJxlY4d35On6D57DDb+8gE57Nb/AdfBgvQwTuDsHA7WeN9+Qb+E1euAF5fMua9TLXV938OtnhSfwQn8ZrEoFBbAeDhnfnG3kEL1qHsDS/rcfN59eU3bF8A29H7FcGsQXekK/mCf4Pe5bpZpb7rsQ62vK8eN/znMb38R7EfmEQW+Al+XR+hS36+1dXUYSh4+3P+2TX5XF8Ka9B7FUGsQUa3psf5DmeHjZiUnh1LdnNvEd2F/IzfAARuLfEFvhAfoXdiV0isZY4H/pExr2R94ou4Vf5KMbE1jDQEAGbxJ3xRNwUJWjQcr/CIILGEL/GyfgqBggI32fbBd6KH+bFEzaMHSbWXN+xfr/ku06f6/KrvA+xcwzbyMDr8p28wJFZwo5DfW0/5hNne3wR38mrEoHbK7bAEp/N0z0yO9B0JHcCH00Ebo/YAq/BDzM5hDLzS67FFxJby3BAEnB7vBhXRwFiCGIyCAOFTeeNeF1hZ3J3QsDCb9H9fYhhIPglHoWALfup/4A3477qZC6FAWEhkb6y4byxJn4rQGuUaPPP58lHGUf4DD6BgC05jQy879i2scO2hy1vxpe3BxD6xG/rqc5Jky16fuFoU3kcw29Ehl8e3RrwWFwtHzAAYaxJ5zCOXzsPRDCWqyG1vwy6iIXhHGbxb/yLC+inffTZy7hkYjNlpuKGaaKRsYZ6ZhVUowZmsnkZq4OyDd7486t8hBKAOdwF/x9CZwscSWLlV2I6bK3K9ur5NbpYh6enX0nflT6/99DZmx5RQWxZklFiTX/+n1dfukf6rPTN6Wd4DM9m27mfOuJZ+/k9+VFn+8bWbH8DQsc3PGXlx5ZaihdnzHwRefJ+kV3M49IPpc9dvPMPmko8JVdQm80Lz60t3i19ZfpFnqXPE/UGeYPvJyvdk1ByC6IL2JjIigMLvlS6Dy9WbBWjxCrbmSiyi3h0+vbew353aS0RxZLyJYlVpuTNa++sP3uTwTPTj/Ckif2ua/vcet5PpPYemBVmcH1AwNpCE8s8T1Vyu0i8NeUt20z4bYfnpp8ZPPVPlxMB6FHJxokkvkvm71J6ZGY68lSVfOuL//1lBk9NvzDxN8cTtn3vZyOR2odhFPV/v4AAP9T/o4WGUzxLy02kpiN7PueK7KO9R/142u1bWhh61FeEnyw/q/yGyrMyL+MbSrlHyV8vXpt4+Rde+vz0m2xP6HNt9X4iOJ/UdI8LCPDCyKikFjlyu2gCW043S3h0+sK/XVmLTM2UOeLQtFfeUPlQNbcjMhPmotMV7kxtOGN/b527WfpaHjfhTVrqXQupRTBi4vV3C13RBRgEGHBk+ppk/ta87DG4FHIMMhYw9uM6jt7wh8snPPGMI8fq3fVtJN4HW1ng86Xc/8tcikARzfJ5qbfKXV9n9POtYOnu5YdFN0VN5uqtK4js2DbPd1bJzLt+QIDqZuJzRjKK/9s0z6Tubm3qI5CL0o8t3sHpHOJLrveynFHPM//52omNI+onNk5sfLLxpaaNsvmHqpJ3Kjx0NpfKCxfvkH6cLedPOkhXixFJV1NeUx+WBISerrc/Sm7ROMfkllBvttrpxzOZ6Q9syT1R9EpLezey8YmN05tHTI2siD5fk7y/Xnu/9MQXXLpv+iX1rrKBjKzcCvoEF2QXtpF682gj95rEEMhmcgzkr5e/UT1O146tSfG++6sZ3PoiPr4GzHAQT3PW5LbMfN4dvGhZnl/X63eRuWc76a/HEfHDHh8/GFdFjuHw6PjdOu/WT1o/bCnDthG6l0k0kbHtbkfx2ys8P3397y/jnCzG3qOKsorKum8VkVDyEp8yc+GlLrzUuZcc2Sj+9iW+1JS89Zru+v5NpnMCqg9Wfjy9dL+le55bU50vmtTj1LGJOdzHJqGzGVC9OfNRdTi6Xa3IL9ymeg+gf3a9rdZSHVLXqjwn3t/XYcZwbrMaARoL5p+9R/UgcOpVTH+v89dvJr/q+taC2A4BtCQEzofRd05JX94jEYGuB8xmnvrCqXo8i2mkBGKTshdVh8Cf+w9eWvfH170/Pb9Ss9m8CE5Az/0ZxHY4D/m1CD1frfJ25kpxct5Zn45ANTz1relKFJlFU2duwJCRmcO/ljKx2bxbr+HtdPDX669WeZvReQ21vnv/Q4rosMjMUjaNrqScfufN25mllqrMqbOqnnYUU5Glt34Q55xCbv2oH+WzSlSWt/LWq/VlZtTcqVdV8v7rzQtkpu/P4quD2A4uaG2SpOj5kPjzXFlNH2lT593TPi1Jvb48n7++FNW5HEemF5WiaVOKmshjf71eX4tE5s794ZUUdF7grVfrq3luPGj7qrCN1JKBV0YKnuMRNXrW9+Z1vayvvVrHwQ8uyfLQVtfYj2yU4Y+LD/gfe2fZ5UbSJeGbpZbUbeZlZjN7mZmZmT4v/pPFT/tbXmby8JjdaBjmme7KfSWdsq15JvKELJkrB9zKqLhZ7qM4WXkzo+5bERGCz/g5VMu4P7HmErgfP4/J8TFKmrRio3SYFmEagyxGsX+LMj7SLrp9flevk1LOEWl4bc6DT0tvN2JjY3x3zaQzlxoX8ZltzeLKVmyPi9CYEikxjE3u8T7OV8SLokUf+F/c3Z8bdFQpos7vpf4QP/f2774xHl/nDdVMKq6NyBPjFNUQ4+wKQbZrtsfk4XHwfxobM9Int3DwJ8Mrh4/xoxx/vVN9/b9OFfF+VaVO1akGPduK98/4EHIG3tx/1vcPXMVvcH2eJmNt+Ii2dmZTafVkbgfY6zo28PXVnAW5u5e+uqfqpxTRrSM+qLr1+6mX34vlN3/1teZq8otbAUzep9Iso3CMHYyv13ZP2nZ353EUGWSUiI7/NLpO8hk/Mb7Gm5iIf0v+Y+II8v9x2+bOXNSpm9arlLopV4P/Nt77v/dHOPnj8fVB7A/zcXUZR3y9LgY7MX47sz1aazSRstd+NYvPr4eKnxUf8dX8yb74yjfN9/KQm9JgXhv8/4Nq+bWff7U4ZyFNgtWUSo+EwC0+5vKC3w1plFZsj07DlytFZvqCiOQzfvncY/Lvj4Jr7g+p/2/u9wJt9bWfeUWmWhg/aSEB5zmT0GkV8tmrz0lqfiu2R81xHextPlOQagYUMhLxfb5o4J/95vn+KN3fpP4jUlp+5WdelTk+IUJITzDltUpEXJUZ18KoQ34rtodaakx26IQE+XoV02B6RaLPODIZoTn8OZ75tm739g5b8//VV37yZdw/+OX5SwvT8cPpPoXZ/FZsD/8pEfQq6WUkMZx5q2FgNIUb8qL1Bo9sX/2Ozd3e8Of3I6WIUV7y/Gs/9xLWOxyfX33EL14ZxMnX8cvb5Zrfiu0RMc9AKtpM4/O1Hy5KuOHVln66hv/st23pj2SWcy8+SHP1ehVx9ZWfuYEZ9o7xy+l/x+8mccG3/W5aapxLW7E9FE1LKEkhJO1H42OjIWkb10LEJ7QXvrPb4wpr8ZWfuqFOouCx1X0opFCIS74hJB2f/IdOcu3MVvabsYerN52edzfA9boRuPbD6fbid8310vCK9dSpUxolSxZfbsSmUxsY0VmnQZAWTnGxh3yVVGlntoewlRMinKvEF73kxibfmB0dPq8XM88z39PrR3QjpZHcPohuRF566cevKwZHKe19TYU3vZQcV49Rii/Ga2e2h3BO43Yxr/JFmSOJ+mQYX8lG8CFq3D/45783LXRzpA8ionsLv3DzZ9YMPsUX1iNhiijiOn5x+4B8zJ4Pl9BasUFCeCxkbg59CQJ1+AGBQWzilL0+/pTLfrcL39tbWE9zOSLnjWq0yzaXL9/8iVWKAkLBV9r3u0mc/PKqTPLFqo5XtWJ7mORmHBlW+UjJdPxwYEhcxx8XAfkvfH9vYZzcjQ9i6fpPrIzdH/gcS6zq1Jfaw/03aWUyeWcifiu2By4zIknMEa5fjfEVX0vberDEvJEEL5/7oe7CIN0//mVevvZjK5hjOH7GyGKOmQIv+93Kc2i29vTuf2v9bJbfLEeU/FaGX6vIF344xg8rfibO+CltdFLTquE/KSXph+PfL1t+N41rfg76+TL8cswa69+f+P20M9uDzkHKBD56wvcCeHyOb+C80thDPL+/u5BScyayOf+/tPqjy/IBS/vR9Da1uBKoZnm7b0avit+K7cEn+0VaX5+HLIlK9AX54BCXfApS20kv7O9uIu3GyomVyJLvWUYbPtMnxMkvJ1LI50OiKdN2zfag/Wopsi0+Rir70WSKhMjd4RC99sPlFw5tW1gHf2X1zNIIJ9/ILyadhvD9aGU/HOMbfMgS+H1ordggJMOPxkR/g3snJCkY0w8HHEJDlKz45w5vmd9InRyxkSI6eSMN/ru5fHSxiV/k65bBL1tpGpyIloiRx8T9A4eQW7Hdx8dHSm9CP5v2mzWIwSfDxhlft0uHulv4cLm6dGqR89BdFW3CWk7gQrCGlMzNcSFg4K3Y7qc1lDNOCD8acKYoEKkcX12v45v125Tozh+dX0hVSnnsS7i6dPKqSISY9dcM3EttRIMpPxz5xqtgIUjEbMV2r/1qzECyhzj6fL8a+Vq+aCKijp+Z/r5wfGHzKP7oAbIz6M1Ly6cvRya/eMzYfSQjTr7hdxPStf1sGm/Fdp82sXV9NeLoCfV2EopK1V9reg2cfrNwPG7j/CvHelvXo5HZEEzr6cbl45f9+mu2322y+mvMUDZ9hl+NOB8ugeOuW7HNUmhMehi4rqYGoZkJEh2RskZ830LKL31cOjm/eT3mIvJG1cCdvHT11EX1gh/tB5O2mOnrs7mHk80dOQNvxXbf/Go+ztlE92RLhLa7zXixXR4fmz2Lp9LWO4ipqiM20kuXj1zCvElxOHLz67NRVmQovp6ZmOss30luZ7b77lfTuPaTIYUg58KyhdR4ACUu+eWc4uXT3S2d2IjOsKP5c/nKiQslPh0HtJCCn4t4iPg8pObxHfyx8bulR9WvVsbhR0vEy6K14rNNgFPKul0+M78lotlla3pXrhw/zztmVW2MyKZXZeKtjojPWa/svvb9bC7evn58ujbmob4tmAS8VCZjKDpwEn9GDNTwRPwgn7jk8+7JGV7/z9/ana9Hp4+j7qSoq1xV6c3X/veVAU42IgRjfuSVeRzX94Tflf796zefpQ+NnxFf3B/iz7i1j5GJCOc44uV3PRpl56erz6ZWjPplsHTepYs/unnz7bMjEaMNgGsXj50rv6bHX6v5uOx166/JzOMUeCu2aZrhV0vqKJfrRxPpi2IuU/Apam5cu/XbOH6+9OPzW6u6riKqXKfm3cjLF0++KP1qiK/WhbOvvybiT+5nEzj7WrHN6NCxkahPEUYOkTiPbpmHvow3Kwu8WERRuafTQGzDeW10iiQ69UaKuH7hyIsRZCE+ZgdhWiUOPuJLIRh8Fv9g/MnxVmyTtylzkNqPNkX9NkS0/XDEdf029iz+RHc7M4fL5068YJtpIBDXLzaj+muT9+h7UPj0rRUbc5B6FtO4fIhrejhqlvLTfOucvzhJqVoaiI3F42+cO/S8sT4T79wSZlGNs03kVwPP87P5fL+1YvP9aLPEcQ3kC3tOmT85TlFiBXblZ+a3jRfVGPx/9dzRZ/mg5onP96OJ+m71XddfIw5RA8d8puO3YjOa70cjroRU5uujXEYFALc+m8BLxTyY8rj6s/1tlODNFw88C5mprxzXRxAo8dnWX8OM5/vZfP7krZ3ZSqmJKf1suv6aXadUx/dxjq8LJC7/TH/7xvDnTmzcQm4+f+C5Jj75fv01jStnGxCz/prOLE6V+PeTJK3Y7NTHRH41JSJmKY23HCe/Ptv09du4bXD15+a3V7muqrpOVa6HEatYfuHIM9KPBkGIWcz3o0m/GbCw/Ww6PqWo+OTarRWbV19tln42cqx3RVruNS1CSFi3xV/ob6fRdO2Fw08bazPn7L5wnk1Rf02bbPzDyhPi5rqtFRvmAj686dUTZGLgiI/HML0a4/jT12/LBb9cLP7iQGzjra6uP0Ox8WQk/XS83q2fNuv6a1PhOr5urdj841e6/pqPy/haUmH0aX4mrvgqrbL0S/0dG9GJnCNul/tdeu7YWcRn8+qv+fXTdK/ki/03jevxiWfzJEsrNikHP8+ot6i1j9ut3ybfrVXmI45Vv41XN38u/XJ/R6Bde/bgWclHM/xuM62/poUDQWC2mhJna8Xm1E8jDhESRwOf4+nxKSm0GdZv+8hX9iz/Sm97pDF2jrj+zIGzTFH4m7xWWSjt7darN+1nY/xJ/W5+prMV26RZSD5e4mqcknRx93HReIuJ4AtEJP5lVe1Y/pX+bq69Vp45/FUK2Ej5z7j+GkYkf1yUxCFa4jI+3d/qwboVm6x/pnD5wrmp8OL+nbhPxAcfCDhj4ytxrvx6b2ew9+nDX6EQZlt/zU2PlPkGniIsPsfUuGrtY6Se5xw/mpYWcL+4xuQ+7qz9cMDB123xNxd2RKqjyneyV58+9GWMPHn9tUGbef01G3ePZPnx9f2xtY+RWlzaj6ZFKvAZ1m9TonRx9GFjeuU3e7sGP9dpILc6qoio0/WzB7/Er1S5vprlRyPfOX2i+NLPNj3O8Xl1KzZ9F+rNx+oNj8n3q5EvcY7P+xM7dvLQGHFGFn64pd9a2MnSwKtDsYmTIIbtxsQZv3yYWPnViCOyPoRl+OVCvTm5FZs+ggX5iM++X+2e1W+D6P1Xklv125rrV3+7t4tn9te+duCLiN+M6lfUtk6M+LtfUsZ5yndEGlwh/FZs1hEsvfNGPxlxCkL72aap31bml+u3kc/3Ccfq7/R2ce03ENvYtV79Nb0iA9/IcVp+NuAFPxr4Kj7HVw+ZrdiE/WX4yZ7j+Fn41Yyy9m58nZCZ7oXlun5arP5ub/edSJ2qOtK1r+7/wkzrrxH3/W7Kz4b4vt9N3J/GA7KOVmyFBzrhv/bFoXHphzP8bEzV+PXZmjZF/ba13xuKLUWuU6SqHv289pX9X/AKQYl3/GMlOYv6a2pm9D8LvhY3Uz1EWrFRZjJxTrz8hY+pcH4Oy+2t+Uyt6IYCwmu/39s9NNdElSLqGFptYu3Lg5nNr7+mv4A6tYL46PP9bNPgYvxH6nV36aE6459KSXz9GTHcVaDAZfy4P/XbECuv/OH87kgfSuDXK185+FlImYLFfGPiNdwIepU1vZ9t8s8cnyu+9jHSeKVPKNlBKK6PW+NOfKN+G9iTFdeI8Qhj8fPKn8zvDrTVLx34LNMSPJNCaQEPom79NSZD+EnOSv5OWXn8MBzfT7TYkqyvpuujKb8Zr1R+OOIuP5z6beAbbycBH3601T+Z38Pa2StfPPDpEa7rr2k/mvaD+X41Stn3m/m48aZ/kY5B/CdQbJi7jPpr5mtXxbUurnvs+m1KqDpNAj7atT/p7WXv6hf3f5ozkFl/TXzZfeOnEoRpe7H4HF+kUYz9tydXbNpvlpwHO3ml/jQrnL24f98PJ+Y9ZEWv/elIbE3Sf8Cq49oX9n/KqL+GEYlj1NnVX9O46FHxhfiCL2GALKOd2eQn8ahZ8Jt5fjj/s8HPxqrQrt8m00dN6v8v+nsC7cbnv/9Tfikoqz5bkMmvNCVB9vS4sOYwVaMllRH/SROb70cz3oRlzkr2I6Ndv01IDXxcT5wRsaq7/hfdfTyEtfb5H/rkmIwN0dm4XX9NbDvfBY74Uxzt0mddnrz6bKyPlsYxXR8NnKTrjxEHd1J+Hh9/ovpt2R9//P//fmRuS7rVItKwvbn8n4uCL+uvEYeo+Lfi+Z7g6lpyksKbpn9/YnxdHy6L+m+D/tQ+Roq9NXGCBCzbD4eoYvwy3zw+ZiFqvy6zd+2v5vdybbX2uR/8OGMjx+n50cCfvP7aPcV5/3JD24j/BIktWX6yJHjwUaMnjPg+rh5ltWh4sJijcDNCr+Di2t/09zZI42eLWPvs18VGOST7C0YchTYMN7fvRwvv8RFc3ovYuHbGfxLE5vvVdP21Mt+Mb+GT12+DSKeo34YX21376/6+iKjGvm557TNDsZXnoSRcYyFwioBRGZ/+s5gCx/hy1ceojI/PT9LMlgru7P/n7iygo8qy7v+7r6AqkKahFQshAQLj7u7u7u7u7u5u7e7uOu0yPu3unSFCaBISAj2k3v33n1Urq75Xe53v5ELxpfLGkpza576k756r++xISN/gT9cK+L8X+aNzO8Wiq/1J1r1n9qLG7rf2yodcZFy/StwcsSuQOGx78deHtPLruGrJtEpE42c+2Vx6NTmmUKCU+LoJeri0m5T2Pf4AU/RvgzDwvraFMYZ6FDEOXL7mYqKncqRRFCHdfw2AtLiVX8c9/m1+vduMJ5vYF5I08BPKqDiys8c4vP5txrmagR98f2WhWMldvvpCffOCkFRPy++/lq43c+jRTDWBpiXu9mf+mi1dr+ZcH+n8gnDiQNpu397+wGkilerfVssy+IHKosYKJgOXrb5ArMl2sP9aMnm2X48G0fJvkzk1Sr/rzCWbvR3vkHpKEtgH3qlruUT/NsCmnsI4itqFwQ+qkW3w0p4LHSs1STsRN3Ywk/RsOm7jNTXtiNF+ER8/yLOZTy+/59/s9CfEndWQU6/m2MqPBCkwdeR3UN+hZ7P1aqY+wNbDIfHA4IcrC6GouB68uOcCQR9BJUGqJvivJW12RIKtR7NFo678EQhxLofSCQDkHMifWp5sBtUA4U2NS49m+K+lna1N6dpz9Oe31m7p/m2DH6ksouHpv3TN+dj+a6D1bjHBf83Wk6Xr0VwOpH49nM6/rn3Po6mfHVR5O7fMSLLxQZ7PfPo5MFxk69VMPVq6Hg5iuh7Og1eEM3Tc9uVjiu0PfbiyOG8YL/svXnPeJErjPf5rAj81/7WE68Y6v7ajT9C7FfFxLsfUqDbMZvagDPyTD85Esh3JagAAzglfs9dLOqb911zV/AFvfn/cu/5L92+rz7PuY20Lt9UgqYvXyAa2/1ogNsF/Lfr92URc5fdfOFZZTWFq3ag2xAZgLkuBCZ7P6Ewj26d4G/XPReHzyqXGo1dz6uEAgh7X/Mfl/rgpzkGZ+hp0k1nXfayyGADIyGvxOHjRqvMKxNwe/zVsvVpT4oA8jrZOx6aYv55q3FeLdzMbOJafzCyyBS5hDjDKCLszt0a3L+gO7NeTabw9gfTn13o5I25TKYBDD2fU3Fr3icriEOp7EhH6L1p9jqHUFg45hWdK/muGng2CV4+mPLD9Wyzu/LVIgWrrCQDAbuwFbOQ5M4tsr+eLQJU7yAl01Oh2YfiCW69m6M1seyn/nqJpsYgjbrt2Y6rXHMa/6z45Z0mMIeSBmAEQI/RdWCCbIJ5cx9n+bNFhigg0XY8WwKGHM/Hr5tZTDSZzllhJAL7CuTOJbMfTBQwzAEBgKe01un1RC1zqxwlBII9JFIAmcvTn13FNUyO/er9o0EyKUNd/srK0ZhhFnmV5HiCLfRf2nO3ykfb5s7n812oxEuIiv6Osqs9/LepVZfWwbHUd1eqfRcwHbuJtM4dsyzmeANzF/aDp5tFBG2VV9RiXpofzx9P92wLRKuOqPzn0mfLi2veTplE5Axf0nGn7rxlleETXl6unZD2bgZc7jyKHL7/GA+NPmPNbQbUIBCp0ATkvYWimkO0HvADYzN31bdJBO0B+UekLhKka+zpK8ti1s2xLX99VY0GpHenfVqTI0OfKS7KYB8jIAQAYOL/nLKkUCwn+a1aFrSLejmtyYbRpkRpjeoqNr34leyUwRq/4K0MXbcDJfG+mkO0idgH6GAFJt8NKv9OyGjGuBeL/uR7Oh9cT0XT/NoY+17a4ARsHz19x1s70XxNxlV/H7ZsgWiTj17tJfI1sG/O+THXzBSwCRnjuzCDbC/gBkHMrESTdth73zDdU3QXrAlGPQTbelN74/eHsePFN0v3bxDP0+bYlhFj4x9V//qoznPcisYsn2Hq2FD2agZftG1mN/Ob7s/lpbT/X/Q+AjB4C8CkumwlkO4BHAsP0y9IAK5kFE5+ZfbnwT7M38009mnnSpm7/k+4MYO9RivYT/dvu+1y5o/iJyMC5NbJpQuEoz2oLb1L0aBA8ejSDRkyxfQMf/8wuQD/DclNqCbsC/+IDrU+2EpcxG7iHTUVvzDxkOauYDVu+OOci2yGG4Pdvc+BruER5jtU+BL9/m1upDYG4/kuVJTQ8a89bfRoQUv3XjBVSSNajacJ69GgBTP82D76wwqt+PXspsDm/J8sbKr5AO53AVp7ORKuT7VV8DZjgVtmR2ugG8n8+63H3a1W2nxC2/5qNL3zSQTi3fxuQ7N9WeL/1X6x0CD3buStPc/qv6biihcanbeRrGiJrR2o9nN9/Tfq7DS3a42QCxDvC/VLJ3sMs4Gcc3epkO5BHABvoq+9Wk76Zi9gd8ttKb5XdWm//u/VqqmsbUz5jHEuK2xv/Cmn5t0XChi/N7gAIgQAQc4C+c3tOBW3MoS4ji7jtv5asZ3Pcn9SjWZLezcATj6ELGGIwz7LYMKIvZA9x2tYCZNOTyLsYl7cAe5gF//1J5QSAqRfwcejRAIceDthBejiJFxsx0ZLW6FXchq+Ul5IVNwYGzl5xKpGQ5L8GCBri8F+LQGi6Hk20L/AQbfzEm0ufAibyWzN1l2YO3cAET2OitcimJ5G3NHRT8pC10wnc/4ZnHKdps/3+bYqCGDuUWm9m15r06d0wqvK69iJh/VfbljV8loGzVpwCLv81Hbf912iCHs02z4gJ/ms2nmOz119EGbiHMfn3Wc0s4HucTNOfWTTreSUAG8U0iSwyHyC/6jjA0osJ1zP1XTpebG+Yl7eUeqoW13hbXCOuO0s1QBbIiGR1xM0K7+j1X4OozYR9ejYVL+C1Hk22X0BZa08IxKnj31CtXpU9AZifb8pyMbZtZHfgpZzcuiNb4IraJHJT4z+wvJStIcDmT8z9q+2/JkYB+4JwMt5fH2VH+LeJn5gVJu/7RqWj8f5H31mrTsT2XwN0XPubSWy6Hs1fITKm+K/58Juf0vYLIM9vySbEX7udLmALT2tdsj2PHwET3CRv/C2gAxgNz7P1bIIAnimgjQfApadz6OHc/jhg+wlgq9s2fLO8jAAhxtpPApHBM7tP8vqvGTTabr1agj/aZNzOL0awKeMnT9t6GZF6vgdTAr7ABa1Ktp/xLGCY3sZQHrJO5kH+59JX6jfU3f5otoQ0Da+/8/vDQUjwbxNmUnqCPPyt2csgxJjVd5X+M1eeIErypPqv2f5nwaNHE5QAXHdBwG6fdHz1B9lzgVHuRj0dLAAu55OtSrbz2A24lxFBNXgIATa9b5fr/Hq2dP+2dLx5PczWy2l8sn/b8LcqnTlZnalGjDH0n7HyhALVpBmvjifozdL1aErkCTWkgdek8uMjwKZHzt0XiNyYR3FLclc6hZC0Zci2hFMBuIFcROexHBgJL0jWswEATcSbtyuN/EovBxh5osQXcMPfqXTWj2l5yCKs3UY2y2fUtqdP16MZNRrRNhoCI9oX+W28oWerbz+ey3zgbllzJOPBBOC13N2KZPsY7wLGuUNuAixmD8ivLH0KnHqzoOsKJ+EBjW+KHi5qvJFJPvd9b04HISerm8jl9J+28ngwT9UQcaVcw3usbeEdm/52/qbhq7/Kngyspw+EwmIF7cCh/IamPhnNeJ4GwEYAAOLkvyAyD2DiQiDUxSHKpXUQZyqh6Dk5iQRsfD2q0L7a9g+A3XV1+xAABL6YX2ULxTwZZLUDgIyMwLbvQgAxNazHBjUZk+1bq8tYWL0FYgGv80Mo0lW6jzYZX+ttMC+vK6RQhxkF4InQemQr0QXAKHnhDwExr1AGqv88qzg7F2a1xc5PsYCpdm8x12ti6W22P9m9RBxtHFyHrMNL84wIRFf7gYwSpdp/l7bRTbZf6J46rn//YuUS+/eHKI1/I4DMH633sybt+jRU4WX/CP88iypQzmbldT+f7J9jAHS34prtGfwCmOBGEHqtPVgK3BteB9glDbTlBRqRhve1LyelUTo9R3dN5Sn5tw1/v7KcrDiF6zt1xbGGXyhgb+L79WiG3g3QcWtNZ+T34gEnPgLE41kG/If1BCHUfTCzgE9wRauR7Ru8AhjmHjnmdLEr5CeXfij0aMl6NrMgEH680X608puncrgrS+rxJcDwDyri/3f7TlpxrKBZsLRjht4smHq0Yn5JU0HtdP81P96hh6t+OXsVsJG78pA1TtuXsQA4i6+3ANlEPa1e7iv+8fNAyB5MCcY/0H61V4+Wrmdz+OY0Qw8XzbhNPrQ39siPy12NU+b+k7qPSfNfM8a3CEl6tMmoX++m8OIrt57NaJ9Nj5i7H5BzndRV7EEH0MurWo1sVzIbuJktItbOKmBzeJYYFaaoZ3OYTDUN7/o+EM04ylFAx0d+Uu4q0nEb2Y7CnjSi/c0svbYzrvMjkHbhOv1+SXjbny1exBzIb2c8yyk+FR4ETPBkYiuR7XH8CZjgenkxdhELIb+m9H5pYWHr2bzjVPBMQG280b7/Jqfe5E/ybxv5SaWrbsip/VffA2Tz+685ddZ+PZq9uiLNf83Gi0yGnq2w/b9f9ghggH75uz6MWcCH+Xsrke2LvB4Y4S5isfPkWbaKuVD9w6xDrMtOBknS9WyBmI4XGPX+CVW7BM3EmeLIz8rLAzGEOHkxMoTYf1LXEWD5rxl3B8NU9GhivAnkjlEwAtj5p+Tflu7PxsQ7Sx8BxrlFHt90Mx84mp+1EtmOogdYy6AU9DwMiH0vXrLBukxsW/MWqNlsPVy6P5yOI7Kp4/Z6fBz5RbkrIycjh9p/w8AJXUeC1qO5/NcgNF+PZueXdy39eKm30++/drfFZxGA6/KquLS1N0uEZnuak+1S5gA3s1lW6usC1oWXqa5s+5/5/NfMyaltgp+KF5/Uca9/m8Az8vO27kbv7L4Tto1s9s1Iu9wPAODSo5l6Ms/NRpHPwpt6NkN3AMj3J57OXsBdDMvdhB5gE89sHbIt4nQgcrW87b+UPSG/qPRF4a9maM2aqWezjBAT9HDOwuS2P5vYIPlV23KhZzuh63AC0V9o3Bjz/HF/IXC8+AQ9WzS+0t+F6o+yZwFD9KKeRxKAV9HbKmR7HV8CxrlZVNWIPIg5UP3lrKNNcYztn5b9r/5rgJW/CXhD3OPF20fdo78qdxHgf9577zu+63AxcRT+bAn+a/rnKj+2nsyYcPrx0e3PZuSfeFPp09R6p+ifPbQDv+LwViHb93gRMERvcXskD5A9EmDkDQvu1nqzwtc7Xs8GgK1X8+MT/eGS/NseGNm6oWCZFfuO6zrc9l/TejO/P5p9xdieMk4d73g/e9czgiXWGV4+/1gArspDYfs/AEvZCzifL7UK2Y5mFXAP60URm7msAe4Pz3CRytj4b5KezVjVGXjTH85+PwNfiG/8dWVFAQt5/3HLD1WWGoIosgum6NHkGRvmUYCNT28f6/31+8VLqAA3My765+4sB+7gDa1CtotpB25is9BO7U1H3a1ISSlDNKPJuf16NqCpejojv2E1VcCP/qa8qmGDJO8/dhvZMBxm0MfAmpS2a7bhQ+Mo2+rHy/a9ersI1jldPIEOoDcfymJD/5zLg8QWybQl256cDUSuKl5QzUMW6WY3yC8pfd7Qm1k+NGCfffn1cMHQq/nxADh12qn+bTXU6G/Lq2h4+o9afggB7Ar+xs6ef7IYiOn+axY+Xc9m7LRqJITqT7JnABvyu7IodoMfDcDzGJ6OZNO1IjdzI7EgaYHAQ6lA9XezDjP2/Vw6AD0G2P5sniJA9lVjH95o3+nfpk7fRv9QWRGhcD/5P0d3HyzGMOXPpqeSfn80ZH49eqX7q/nxCApb71f72cQ7Sh8F7uc60T8jD6UN+BpntwLZvsxrgSEpL894NMDoW3e9TY8O6f5qRbwR18fUOr8fb35S5JdxS839/8kmRrajOw8CW06T6I9WjMcE/7VUvD4KMFdtEi9+/42r5h0BwL9lNZJudgdO4IetQLZ9eCzQy0Bj6dJ8XrYG2Bqe5p/8uW9rpPu7obPuyDM9W8/mK0k++sfKisZxq//IzoN2hP+aJKgmjs+fTeP97es32V69WwSIlzEb8puz0QYxEyykA7ia97YC2U5hKXA7G8Rx7Z50AWvDq6emVzNknrYeLhIS/N2AhPfz4CMB3PECDR8gm1yzdR7olov6/dH0FSpbT+bXs6Ex+msDn/Z+MZ7MEuAuhkQFyfn0AP28bJqSTVzVuo4t4vZIBwshv6L06Snq1Ww9mU+PZhHF3PRPqZMs9HTi/cWFNMMZYGyf8iqhZzuq8wBjGySAJKEdt+UrGhl9eBERWbczv74mPYmu/jJ7CjDAvTQ+bTxMVEeelrX+25kDwP0qWItdZ5ZFjUAgI9a+0vtOFNTJ1H/GkR8QxXfUKKrtlkKx20t8AI0vEMpXFjYjgLBjjIWfq8J6Eey41gPoe5rFjDZe2jIGoim8CQ5/Nys/RMNQ8TqeAsxBPVuIBNpoZ9N0H9meyq+BLVwnxrWcRzF7W2HWa0FLNaeuN5sGejg1NqU6A2hlAUAY27fcM0l1gBxg4Ihl+4PXf80fl1TC+Sn8erQa0hatJr+fjo89vH1/YGt+TaYK2D6MNuBj/GW6k+19fAgY5lZxhz3jsUDc9ykfzAskSNGb6QvM6Xo49GaKKR0lGZ/g3zZ2QHklgSzLaxU0yIGBwybJZuvVIhC0Hs3chdS53f5rDn+1uLPz75N94AoC5P/KqsLHp4f5wO84eLqT7Yc8H+hXs+F8bvZQYCw8V3q5aL0afhrZerim5J/Mm6yn03Gp4x47sLwqq28HcvjPEcv3s/VqAH49mf9mIxAT9Gxpd/Y14fz5A1HYbFzHZjGr6GQhcDZfm+5k259HAXcxWL/ZUVNoz6cH6A2vhR2oV1M/Zefr4ezTQROv3l+oATYdUOlpiMe+w5btS0CPELYtrjV24Om0iXo0rQQQejrP+xlxQ/5Tu7J1Wz6cxQa3171ZDlzLu6c72U6kE7iVDUKltYhOyK8qfdA9yQMAplz1I10PZxPNHL2ceKN9Ea9rcezgtpVFe8ca2YAkfzTdbdHCUT++GXq09PwqXt0nexRwD/3igGoBq3WVrelGtvNZAFzPmOhAy1kI+Rml77gsdl3+aba4Jil/uh4OmCIegs+/rUa21RSfvO/QGtkmEYY/WvDpyTQqFW8Qx6tH03HS9W7Vr2cvBQbye7K8YeU8l4cBIzx3upPtCsrAv9kqLOfWsACqv511uENP5iNIul4tACTl1/hm6uEAgPFDyqsLY06A/oM69lFjgf/7dD2a0IcbloUSb+cHiI78wNTyT7y99DFgOL8liw1FzWfzGGArT57eZGvjMiDyNyHRh0cwB7Z8bs5lSg9mTfmS9WrATstvoP14Qy8Xxw8tr2nc5F97SOcfXa7XOo5TSBOINj5Bj+YRkfrzU0CYItPNT2/7GTDOtaI2MjyBADyNLdOZbA/lEOC//KswNMc8g+wxzKpptO1RyCjHk6A3C+DPD+DP7x1RvWX6bP+28UMrayKBWE/RuPbgzj/W0yRRj1Ygghfvrkhi69FsvZvH/02/P0R9O7Km157gH1Ir8RjKwDu4YTqT7WV8CxjjOtUKTwTY98m1U7Z0fzWMDg3AlPVqQeQwSLvd/nBhynq3SBg/otJDgbPQd2DHH/XOo11Zy++/luqPJslJgt7N1tu59XT1iH2yD1wJkP9NVEaGh7EL8HXOms5kez8fBO7jFhGbzWNrBRF0J7ZI1RS9WpIezu8eoPOn6+Hi+JGVNXU3SHIAQt8BHX8EIqTr0QhEA6PHoHQ9GgCe93PkT9bT1Yoj/CvfKqaRq9kd2If9pjPZPs8bgQHubAzl87KHAsPhhUAg6ipZth7NreMOhl4tEjx6OOOOyw7Mr/GapONHVXoabkHyANn+4NCj6TjpejTw59dj6g7Ob5zYqc/Hc1gAXCtvQHazEDieH03ni8jzAZhQNQyzEgCj4hhXuXWib9RLrxcKF3KjuKSsnK7t/FAjjljJePLXZbLfX+CRt0Uzsvp85EAIARpahaC9V8WWfUFIU4joY3A9ZkeC/pSaGCfn1y3pkhIRCCJ/BEZZAMyWm0cTAMyH6Uy2eQBMqAV1LAcgHwUArScr7sEVOqKpyVJ/YJE/AChTJ5Frqvkh2tNa8wlge74BGZFsMqbeBdG1FY0A0M42Eo/UOQTQNxll/rid+THzA0S9mlP587EMiOUQRU2zCQDap/fW/wE8EriDAbG/t5guyP9R+tgU9WhWcR2ff1qyf5sjv36z9PwG+caPrTyIbRlDjJNj29oDlv1mu/VokZCgF7MvZAVw+a958/v93Vx6uOrvs8cBd+X9Ys22kBXANbxnOpFNV4y8hfXCH2wZyyC/uPQFvRFuHSgLwgVzfWPv9tntRyM/kJhfvL8kn4EfP7ZtTSRk9V060r//0t9Y/mbJAkzbX82RX2RxiGYc7+/0Z7P1cNUfZ88EerkHGqaee7IauI3/x9wV61QQAsGBV9haa2Ptz9j6Nf6EpZ/g/1jbqK2hsTCwJndHzIQdsqG68gw3sIS9lWGG93jKZKMrEd7w7fyrcIebXaylK0LYjxbwk7lvavyoXy3u217GV1zsz+tW2TId/OLr5fZ52e+VYAE/2ryuRP1u6361dT8cdMLVp02w9Yl3xy1xjXsAH3g45Z6NnNi/fTqIVt4JkuL4vZzaIL3N4rhSecYGvDl+Evg+X6jx6QaRFXwxP93DPtvX6EWc9K1TkiWE9MNZAJ8TODntCT8w/nj/ff5UfGV7vnS1CvVXdz3UmQmSzu3UcbvcDjbSCn25bTj5mhDk7tUFQxsHf0ZZOASDMO+M6avxdXy0jxP44n3LyMhU2xqQOE05xhnZA54/L804LRx8hMav5dEaX/x+HK0TxWoynojPjmRrQMqsbukEydW5ky0f4TZalg0pt72XWpQNhf5qNGm+McX4Ke53o6+cIop1/wbM8UV8iMfnp3zqbOR/q6xqQ8dXCnjhR/PuTbEJPmTd0vgsJ9b43D+0UlI7FGbx1XLZ1n42tGF8VYnB/6g7jyxHduYKfzeQJLvaynvvRv9MM/mRdvDvR/t5m3gb0OyfyEzl7XNVTTIRV1JnnGQc1quZXLMPCCAuIgBGInBBEKfr/1+w5Z17SIVr6B8pJ/4JvyP4QazxSzDgbRy06Dv9hB51jKFLHAKWgNA1QqERMOKVLpKkGdpfcxyYISE4CuaQUI7Fik9yFkGO4RwE5FhAEkIZgxwIlqpNIQUoqBIBEiIyBp9aCTJQ4EBE5QoQ2suBHAGqf9UngRAogEolRSEcobJf9mR0/OXSvS0PCT/5p//+a7jCJ5PIBMs2OIG75CShNGzjvZz4uTyt/JSjpKOJvde7bSdgmwyTsBrHhuzathM7R7VfDZFOPNK+erGNL168EvPKSGyP3EppmNNO2zDmRWOm08t85JWvOQ2XhI/5xqv/bcJDPvk7f+Mf5S/4z7zPRFC7iHy/5RyfBbPdn3ZFpkIAvu7SPdROy+tYdIqhc/xULPFK63hgGdIcUoQUwZYPxRpvtYakQAppUS6KVYsUMxZtCcUCDFAQiqkhpEFIRI6oiZ4xxCCQAqEqBbA0WQADSQwiyIFiQ8oqVSZCKEfAKFmlUNkapaU7fMujkBsmtTISFXAYgjz85uHXMdmCoN6dZNWcu7Razr3W8XWrkZt+WZyYdLOcjkmmManKt9TtunLSWXlZmMSs2i6LnHaSzrHhduLVY9pkTjxytWtUY/qTLPOQtn1OGPPs9/PJb3PmTBgr/Fu+zkUP+Q/6kCT8IH6UP/QXwjUTFdkDrN7zf47Z4n+I2Trgwq7Q998/7gcdqnyOodApQyefddE1JAkkOBrQVasOXtUtT8HK4qkpgOEpUNhsugI8DNJtNCm8MxEYIJXVAvdjiDbeEMoMAGwVLriVEm48fr/Rihd8rWgP17qDKsyqyR56kiBe0nPrL59NndIru0mZj95KxdD7mLv/4sUr4u427o6LtOHhm5YEODyFpO35hafc/G8voNn6WbVq1sJ01QUJroKzjgaQ0ueAtwyd4hu9NzwI4Bf8T8LAlZfnvgv7fxxsLx9LkGKDzuV0/7R/Qf9q+FuuhkVwyv9K53jkidc6Gg5pgw3XAHzwyDVsQHvwyB6eMWzDpPe/b3TqkSFAqSS84TgDkITDASBI7RrtXFUCI1EWVTmmhWyQJJSFHkxtk2Kx49qD01QybbPp3b50kwZRobHzpV74Darsu+yrxLptJmXLG6ZdC1Bi3OSVUmEQMqQwND2VBk0n2qiEkwq4emJBxjAGlAGTYdUiOVVLqkciyv+LDyzG9pUljy6n6ZDU/vCVIZ3+hul3fgp4MvyrCUDgc5+Z/fV5Mdvk+VfdwnwFjNEX+lv/hOAXOAi+4lHw4CfBK7/yWWBfdmazAdCMJT+5mZtM9TgWpAEMhoECEYJJSlGDdHh3saJsdddGhZB0t27v+gG27s9F5cJ1f9aW5M4jCFmFB4X3l4Sq1O3vMEFZErS+JOKu5ZaiakJ05qtkFUpnt8QSJXdjT23+kywZGi7d7LtkDW/+3Re0sZU9d83h4Sm7cM999EtZWbzKXgUSWgOBdPDRc1An9h8FTwq9Y+gbXf2V4I1+QuRPG4OL2cKpfZa63vNzYLboq3cbPJGogk2A8J8A8G866iHhA6d81JNCANLJAEd7X7PsqzBcdWXVHXsxDFOu91khilyjGISBSqnoB8ElL6fbd5eFW0KkUhnJXaAJg0HJ952WBVGlbq0xRQuNpiez2++8VqX78Rn2cOtRlUTrreEqCTKm497hzt+IG7PZYEXh3RrC0vMFt3u1BSU4KInsqalR+lMwUgF4aq32ayyWRiIbL4nBvuoMXGRvzJZ+A0y/NfwkH/wxvjP8rb6gnR4IR8LOxkafyzayu/dlTBh9Wd/ZvtJTAAy9NpwSQgAXSTdmA+lgNBIkiZJv+RTFZpPhjGHqIXZuokqpIEWNoxgHqABE97zUXiaMwpDImHv7DnaLLWX3jNijvOs3XIU9t194lUy3gJq+m7W401dBN/vWM/tEZ7/OcAogJQFKRR++q11N+RfG38NcCHX/wABmCaYkiu8WsLQx2xVpq0kXlXkdfbQUgo8KpeFR3xb64zW//kTf9wUH3y818P872BKgT4XGbwmgI+CN2X6XfxXl1dWPetSDzwHps2w4VcjY9iEB8IyD7bZF8XDxWtyYZup5oGTUiAinwm1dc7/vsj8AcRd0e9k7rnaMrpt92vioWtKtGL34t7Wbtrodu3pLkqT36Vukkc/G7CTpn68HT1Xc8Nv4pcJ7Lzhhl0dmm6LaR6Run+5/nGphbozDVdZw9//wSNsJM6bWCuJViyVYAw6mhgqHvAjstA3bbHptgG0bCef4BQOqmQgZiZ/99w2xYZ9DsIGp1MTegw2M4M8h4WP1/trveBIAHPMSR38sF0q1dulaZ07tMWkKZmAM1FlW54keVFUmMmtSoQyE2ionOyYC7PsTSYlU1MbYYOhMtJeS3T4lDdNfhTcPtUAouV+4bZnk3qIjwi/cMWw9NdablGbg3rZaJUqX5eenkeEs/wWoT6MetF0HIbSXoTObAEmQMRw5FYknUzOkGbWs7rS8auSVJeGqkgEXpS+iWn3HqYXLB2/53+pL49tMTMFzTvscgu3+qk6lnT3QoTf/Cf2bXiW886JHTT84DSFpJv1ghCPUaSQ0E8IYRiKw2zkW6gceiVK+n7qCVMwb8wTApu9mo2qeYGrSgGQE5G1yybgsd2ayElLVEnQ3/gxH85h6gGQLpzRkWcn2s3LVnH2Cq4V0uEo9AJvMFiXJCrS++YTZObRCY0sOV40EnG1nw54nZNMH6EtmZBRG2jArgAYw0h4JsLIAsBiBaiodfNUhwYYThzzW839NiFq+3/mgr1SnkfwQdvX2jY3Kb8zmz4HZimd6ShV26NuXf/WP+2PAN4LXfhRAOg0nXwSb42y4AIBmwBXALRT2s0gYTE0gZmelFET/LkZk5c6gBp26/yRuUyNA7LM9DL6/6oVVOGSfVI5N484vuvFaGt2irOPVZZbYdtUr1PriUTb2oZN4l3QUskmxLIFK6pt/ZEQ2PQEOR5KoFhE3DNzqbh6/Z+28PcWM1PDtWQ6GXV6apbggAdirYPHlUw7XOOwL40XXuAjglI8APHjonN/oa/00D4KfEPyTANeanXdnkf2T5P/vGyTZnY4qgfaHd9zq8KV/R/CN381vk8E86RzoO70KGJrj7WUdZ18iFLrGA9cISSNeCa6xxok1Dsy4XdeCg1YdhWZIKAJNLQKFBDMW6rpWoAWkACTlQEgaZATSjIyBYpPWVomqB2SEQCJSCggh5AgyApShCGdscpV+jsCfcGKTEO3KltBWlyxiAzd7CNDb348PgAx58+31r5/+EuMER+JE/fqU++Suer+UlTs3+4Ymrm13WpOyXjLDNI7Zemm9uSzHBIwnMSeRN2TTiHUy7IQt2evtUpZhTNh+RZufShti27frWjDz6Jn9utYxn7gk/GdZp1y9OtevxPwP7s4COo4j68JflWRJiUxhMLOXKYzLzMzMzMzMzMxMYebYXt7gv8HltWWH5Fi2Fa+m6nfk0alT6XveKVUkr8Zt0Ey/fq+qR33ndVW/W3eIgQC3lmvdFHHgelNmy1fv7hSwtYwl0SIAaczmvpqq0kfK9dVsPpjpqfnb5QLDhXy2CeDrSWrq1p/3ziSfsAi4G8448DNt/8nUP6vns6m2Jkt/rej82q+mARAheB/kbWNrai+LcA4zgN+xRS7gug+0vtT9Hc3XmlR9NWx+tq0Pd7vbjxXxhb7bdrDdAZcv9QbrvjLns/mlWqN/ZqlwCyjXx9cknvL+l7fviNb5jTyr66XAdVxOc9udQ4Cbue9Uzmy3MENXSwfnRwDczA7kswHFfDaIE85nS+9ymmM+zmCX4bOxM/hsrr0S3OjsskbENpjKYBsei3dbtrSPtACYafC9di6fLUIhnw0YF5+NFLPw/Kz+p1hpyjRduJIvluIbt2QTw2fLI2HEp9GSjo++LdTr+Nfz2ZgJQMtHwd7vAmB4as9GbsnAm5fEjgAwHYi4xumpb1N9GxmJuV3nDkkBBfRDXZxuX1hTfGeMAwGceX6U9j85ZiSaSIwQGnFjA15qczi5Mhbomkb7S8gB4Mz45BGM+DHF0/HFqp9WfCfPbwYA/xWAjXQDsHXqjtmS7uiVrBW3kXNZCuF3Xa/IxypSSW0i9M/cBOmrAZMTv9g/LWW3AvAuRkd0RIjcurrW58r11yr10er116r13YyW1N48fsH5tT7vD4ZwjReC1BzICuAinj+VM9uQuC2NAD5kC19mIw9Z8+dwapluMdpKEwkOzHzpAMYTP72S8Z2MTyO+w+4/2P55cXeIEDKONSCKgVM8FVGfPyD8U3y15FFud1BSEynufJDrKuua0Ty+a8QHlx8toNwPwIiYQoFuADZN7THbze14aupiG4Dv10Lu6dcoRz1RTnhE6ZnHj43/Hc6M78CcFEEooAFm/7H7r/3FBR8ywGY1l2rOUE/cy1VYsJdZzaZbhMhUaktA1opPcXz12dn9T5sAsN8dwG+TE//TJg9sfqLBlo0kxljQ/wVgJulD0gvV2aMeJ0ZtomgXPeKLmV3Hj6IGQo2KBJ9AZi27/9o/2bP205IF6acLQt1FjFr0qCg/MgEs81H+aT/yE9Leon/GqNwc1YlMF4nm9QE0xmy3+Ma1SqALgI1Te8z2fF4MXMcl0BDk6+UoYNgdm9qt0E/DgKMaBdrxgUp9NgAq+l+rzwZs12db3n7v09zedn22L455jkefrV4/rWDZctGTKaDPlsWP59EHYbXfCg0hj7uwL/AlvjGVwfZg3g/czO+l9X5A/NmRT2xV6LNFKNZPA/4X+mwiLgLy2P56CqWtz7YsWcZerPtWG2zU67MJeJr6ZjX6bEZMQEZk8vTZftr1hNUAnB3wuY8DDmIW8E5OnspguwPfA4ZZRT4H5IjB+6OZ1pb5zbPPhOmzNeY4/YTrswGg/c1IpL0l/irHjWpqJ38c0REHvjUqhogS1pWiv7oSBEPfzPCv0X+Tc4STFl/n/I0LZ/4Y2Mb50KiNdBxJ31SX+U0C9mdJ62FMHxWwv0DDy8hTRgmWmiqvjF9UglUfX/srIMtIjIKtwXof1dTWkwRGiZS8hKPhZfsb2S+Pn/sXxEcD0ui/K5H53Xps30eBIX6j78GSgP3UnSAZ5hbA0asKtkZtTJtrlaMKzhN2CVby0GVJRnyl+abjh9xm9j+md3peTsVqHJvbQ+K+Zf9D8AEIgiSq9ddiwfnp/hv+jb1aP81l/rEoviPKHjlQ+nACwPL8p80BYFiurdWDA25heGpPkMDp7An8Vk6brmQuhOO6PliiX6bGUaLCEDtb2MXN445fr++m/cv12YDN3+5dDuRbHPju3K8AEO1pEmuaoUL/bCL120RfquMn+Jn6c603+8cA/+YKKel5KHAjD5zqYPs5C4GLuJ542zvhsMAvG5VDfFm5ftmE66M54sTru9n9s/gAySLAT24Z+lbf0saD5bDue/O+ko7SWa0cXOX6ZwX+9fptCZKoKLdff64thXgV/wTyKxX25u7A33jCVAfb17gHcAX/wuUJPHi/F3cH/umeMD79svRegoSJ1F+z6TcW362if7FkrJbib/5G7zJyO8TtYPuamp4X+5S9ADqV/kAV322nxI8/Yz6Ei/0GURAwj5XAH3nRVAfbe3gY8E+uFNX40zkcGHL3My/oGr5azGxMfHzpr3Nhub9hV2LyQ9/sWerBQcCPHhPw/Of7C76q85l+0qbt2asKvpoBwmxrtB8mMb7R/3gW0yGs8ZvE3O9yFgCn8I6pXa4F1wKwu/puCVs9QP9Pu54YiFo6sJKv5sr4cFl8quM7NUFv87nE+an4UfqnSy62YUYAgBgimu/ngCjjI+yIyaRm+xSeH1qyV7bviuK7kvjlfLeTu+kH8JvlzWl/upKndmY7hC8CW7iQ/CJmlKR3LL2w+TnT/09PYpRNiRfou6HjK+60ii8qG0v6B1H76/atm0d1mzn01Z5lRMCTniCx/vvzvq4Bb9W9C3vub0xvVPnb7dt8tGSZmPgM3bn/G8Aw57crI/PtKHYHXsrvpjrY+jkPiJxJhEaJ8EHsCa1Pdv9Ej6Qs4qc43qi3qIyvfXV8xN7xlWdhFGmJbehrPUuaFaQDP5j/DT1Ks6dC7PGQ9rXLs7S/fi3ar4ufPMofdTPyxK7XATfyB2JDWtpxfxxwLJunOtjgPPqBC9ksZtVWsgDCqV3vJuqJ/kq+mv24uJYPFyeWj6b6b9gbPRn6yijY8r1x4Ifzv5mBTD/YTXlBg6uObzbRfLi0f1Ljt97jHwz8gysao1fo5yhgiHvD1F/r/wbyUVtaptOFIQAWKT5ZxpcCbL6YzYdTfDTh60y+GwV8t2K+nObbSXsENFQTgy2kfw2oipWSk11kD8r5cDl3uogPFwv5cKSYRXw0u3+xESuPvwggDOXX5xjY0lU89TPbFzkEuIK/i7UjZnE4sNE9EATxz85NoJRjcoDqrEN5fGPUVe6v24/o/iP85Qhu05d7lzRyGAM/mv8t8xmbLuXS7/RFjcmHQ8Wv8M97rG4WdXxHHGd84unMAtawUfDlFrEC+A0v7wSwvZEnAmu5RNi6eAAQr7zvyi1i6jxd2uCkHQ0e+TDYqutHlg0jfGr9sftv2CPo89v0xd7FNLaBH8//th6V2UDI9wm7XTkvyp4FtMv9RfsCrHHc8cXrq/uXnoWDcKYfobndhTnAj/l4J4DtQXwA2MQqsQ5J5Gj6Yfh1u10o8gAFdf2U89F0/HK+m+mfb7Z/rLI3Wrl5O9iag7mBHy34ToFol4KOK6wwUTkyWSr5ZGh/uyeMk++mPN3WY3YUIYdVXl34RzIj0WumOthmcyYQOYMgrHdnfwg/6PpsFd8rB1UNH82Ob+U2299u376x1P6NbdPnepbS2Nb+ZNG3JVPNzgEOtL2WzyZel/vXt1/B12u90j8NGOAihQUeiAMewE2dADY4m5nAajY2RicxLPYrIFzc9cICvhe4ej6aPZ1fzqer5bMJkFr2KPlumf3mz/UuJtmdi9ERBn664DtirXprqh99oyZWdTGLmYV/GR/OwWTx4XT83L/1VX83CFf5a5vXJ7M4Iq2F3Alg+z4rgcv4l5it2oPDgEH3IJOvhs481Xw0oJzvpoGr41rAM97L9rPjBPA2faZnEV23vXy2g+27GTgVMGy+G3A7+XDiuEJ/ACaRDyf6F09jNvAbbhLX5zzuDPyFZ0AnTP3DNQDMkHypjURg9sBemu9llAA56vloAK6QjwZoPprwV3ZdAhXN/sV8TKNzUohERoikPy1CzPuPzWfTozvbnsU3+Wzp/2I+nYNqPpxeCFCeX3q9fm9mA5GN8vqcCcDV0CmZ7bG8FRhkTT6CaC+OcDizYNuHe39l5gPsW7R6vtvk+8t5TTHvKPx1DowAsPEzfQshk+qLuHU/X/g9DRGdw0w+GOPnixl8M0ew45f76/Zr6DW3PK7njcAgq4P3oXH/cASzgfdxXKeAbQ7HAYHTCcJ6RxZCOL3rHXIkVMFHq+C7MfH+AlDldkR7DdvGT42CzeVfYet+sfD7IItzDX6b8T75Uz5bWc+H0+Vk9Xw47Z/61Pqgvx/wd7m+iONBeOChbOgMsCXpqNUMQj5uCN4fwN2Bf7nHgy0XVcVHSyCo46MB4/O33ifPwuMR/U9g+2TfwuB8XnbFdrD9QNbVKKhhAFDb6/lwwP+CD6e55Mkef8484KKwzofGAsGzUqlW54Dtm9wVuELRFMJu/r5A+OsDlgw1pJOgno/m6vlkJp8NgGJ/2479pE3wApKdjZ/oWQieGGOShb8VbD8k4uRF5wjkvdJ8MQr00wDNR9OjNDOe5qvV+xfrv63uOfwcuoGzpWzGYu4AXMazoVMmSOAiAPZQC9n4LQwBfsFD0j5xwSNBV8t30/prAqrC3+GUv4gPCI0byidsbPuOPyFGxl67EFvSX68wTQYzZ17Gqi/JV9exOoBS7psAqfQXfQcKNHIkH/Ge96Mb2MzW4MSiQ3sC8GcmcetmorfzeCawB/q76wamgzuGn5Xpp0l9ttiAiOCj2fpr9f6SpoPov7RrVbPGkbFhDy5E8nwUXYxiyj/tA5K9gu/m0PEVhAv03YynZ074TzQfjmlHA3A90avcuicA50In3UbCKnqBcxkStgO4V1oeQY/VJoKPVucvY5Tz0UxiqN4n2pf86Y0f7Vko+Gy/WvQjnUMNIKX29CRD+XLiNh9NwLoaSIZ/OR8uHsf+wB8YkKtqHQsMc1Snge1HLAMu4Z/CNo0HAWx+7vTL1cVlL+ZtVNbX66NZ/qJ9Y6Jf2EWLei9gQW7jR3oWNGNsB9tPQI95xP5CPlq53TgywbIofqW/3i9BOrDXfifhIJzulYTvAu4CXMnTOg1sb+MxwH/4821HDwEPRzMLws+6Pp5X/AsFlPKSYibUXwO0aEGEZC/0R7XfrAIZ/FDvQlH1/+tRsEWcITyV25HxUZKK2l5URIDWNTUKxWr9S9tn5CldrwYGuVDeAdyDOcBP+WhnjdngnFGw7UN+7+wCnuC43s8CfxARZ+uzyQtQ65vV+6v2dS7QfLpkicKOiOySXV5wmq8XaDXai1HUM4qbOa3fJm8J0xHSDqhRkYgP2PprRfpqjljjL9rHHQ0QbsARfd5bR2RvAC6ETstsjgvoAy5gENowixAcgJ/NUcDIJfe727DNRzMecxdQOVPMYn+7fc0J0HbAsItz0qO49P/g+3sXEPH5pbXu+MU/s+tFJJhVmXLyl57SbvDlDBKn/Bqo9AdXxod7Aj89l92AC8MgAIBPkJ7JMcAwx9LqNLClZ21XAY6ICy4Z/QPohW0f7D1OUFcml49W7l8VX9ut+MIi7YPv651PY1t//MKfp6PMZVrtun+7NkNXg5Top5l8tp3Gh0tiGtvC6W278yGVbLGclekZWyc9ZwNYDcA+6TvKhx3/iETWA3Qf21CEjGIpF0TtdvKaPP+2r3xgnMVP/oYdET9r3xhRAWn1kQCRGMaeuzmjcNrl/bdz0Ngfo30HRONmTz9Wcfn5Zxbz91/hn3rdaL/nIQAMEFP8W+EGAOwLwCqAzstsB3ACEDmZFhCDBx+D82H01X4c0qbaVOuvVfDZbP8KPppdD2n46/ajleMG39M7LzgfYfT/9q352pOW/FzAQ+ctYRejVoR/id1eTrxcf22S9OHa1Jrfhg1AbOe12Pbs5iE44OEMdCLY4GT2BX7PWsZIIp7Yft3tH0QXDD1rxhWAA6jno1X558Ao4ZuVLpxXzmfToI460uB7ps3zQADSz+1g+4UxDgNA2u0Sq/JnZjbJyeaj6Yg2n67Sf+iO/d8CWuFUWoDbAbexVxzIQcB6HgadCbYPc3/gH1xExLW/jQnti88fwv4kASlwNihsXZuJ95dqMzp+ud2GbRRVlukfg+/qmRcdOCLp+IGTlvxS8NHkku7CDnpWkRq7sSiBeK0fL+j4t9+/9Vb/KGAg/I6Ia99ljf4DIvdiHnAqb4dOHLPBqQAcADjwIThiGLuAI2sB/JFiWdIm4yt71eBrgSP3jwX+8uLLnubkZU+6Kq/MLsvDrJpJET8GIkRCjERCvm5kAlejfQAHyZ7268mT7PPL1Q1ye/LXEoXIHO60MoKIL3pm+Bv9S1daWAc44ujVCNGHtue+AJwOnZrZHOfSD6ziOgCAsTEHznseQhdseVH/RTuHj2bw4ajQX6uxa/21Mjs3vqt3bpPPtuHkRb/SgCmfjTT4YBV20b5B9qzgs1Xw4TbfbfevAoGTQwsA5wNp25ujgK0cQ+xUsMFnOQL4GxcnsCWjP5gDIZzd9db8EfEk8dnsMVw53017lvDZNHlfx6cZ/6a398xrZsX1Jy8+TkAJex2SIv02wAZMIV+tno+m41f4tymja8PvofGMDe7GorQwa6eC7cG8Hxjm1JTXdvwD8PtxGDD0xPv9DDAnJcr5ZLY/UMxHs/l12m5Mjsj+63j6GG56a8/8BhzcKNiw9dmK9NtKi7EK7FLPxlxVqyJ+OZ+NJ/DTHXpsv2Pd2GiN/DrtA97OqZ0Mti7Oow84nxuJwfuYZzf/EHrglvf0nYzN09arN9KAYUXlognWaNsFbJW/7r8Em3XEDW/tm4Mn38L60xYfLzKZolgamU7nLTHxouzR9EfDQEYVIBIQtUugY9N/+KG97wS2hVMgy2xjsr5HpdqRzgUbfImDgWu4FEfMJv8Bdze3CLjIvUjfZpXroxX7F4oDi/c6PoqPV/D0Tfdf2JP/DW/pnQPgPBEgRoB1py87TvLhUECz+WzWLWb5+wo+XBYl8yFZ6v1b3/B3Bq4Nl5Km/FP/7sbidBPZqbORaUZyTvrQfEyn6v4OwJ3PmQZEARTF5Y6qaqHEXzAMstcivvgF61m7zK5JooorjbHaoZNc7UCMI7EVQ2wxNieJ6n+KatpBH+lAf/62PZ1b6r/4fB3WFs32Y4pf5r9uT38HAP4BRN+sujkQgJMAOjuzTeMc+oAL2QDtxexC8EQA8A+kH7a+avffFuubWfpoAE771+uv6RYtpbU6/TWito/9vPFNPXMExeb0pSfCuOijiKdT4+GzARPEhyvXyi7UX1M3lK3X+CcDg+EcHJFUEQng2CsVIHd6ZvsvfwZgHgCADzv+AY4uugBoFeqb2XQZh8suI+3PuPTXorDL9m3qp14ywbCL9iOxnduIcex5W7RGg1L/DtG+Akf+nK1Uvy7z1/GNfIV4okZuN4oIlL5cBH9/AP4OAD4E5wPJPh+Ai2h1fmaDo/g0MMJJjKTqfx8gdPvD2RfY+sf7HhR01hiDjwSBOWeo39l8NBW/wl6pv5bs+qK6/g19BwJEB+lXNnDmUn0DJPhqhl1OiRjUHaWhjbbr+KJ9m2mt2webz8aWg3b7AtAKp7AtfaJjhVp08zC6gddx3q4ANjidPYE/8bf00QRHVxtqtL7S/U2o5rONhw8HTvsU67+h7Wb8Av01w57A9vpRsGVAGQXbyQIoLttXqt9m006Th7ZDvN18OArKnMv5bEmz5t/h92P2xGED5nMQMMj9YdcA25t5PHAj55DqSDxHsC8AJ7r32nyxoroQK5fFaj6a4VnsH0Er1JirSMbGe3f963oO9AQA2k+LCKw/c1l6cGJNjGDadQ4bL9+Nar5aAR+uRrIjCUSF1eJhduQ+7AX8kg8CdPqYDeDbBGBPZo7xpbwjQe196dT1d6C0uzwH2eIWylLARwOHtkdyu5P+EcRIyarG17dXDnBtLmBrjBUY2uO3ZCcSBR8Pm68n6wkjgOZMN/pu2gv4hi71X/5+wZ7LtPlsDJ8HwP5+BZHogw8htTWLvYDAt6DzM1uC2+hzDv4MQBdHpqw2OXw2oe9mH6n135QdsP3zY4ycmmBFiT7b9a/uOyDx2UbzmvNh3TnLTsliZTdT4v+mHZlZbD4bjXc6W9Xrt2FrBZTz2eJXuAcAl/OXjA8I92DJ6P5n7UpgewjvA0Y4kRG6OIL9MqhRz0ez9d0M/TUjvvQstUcLWNpfEHBUTG541bQ5PgbnAjgHMYJza89eflpJXWSKo+3GXgtctr3uXQ4nyvlwuicDfft9h4UAXB6uIN1GdvNwukWZVoeDDc5kNvAv/sFK9k5Qq+CjpXe6stGGb2n8ejtmuTG4gpX9pf91L+89EJclrwgD5y4/TVycurJfQxDlb0ydlNvbe8fNlwNnV/0b8cW7gd3G4MZlXEFa2f+eanKk88H2XF5K2kahVqGPFnGU66PlUex5yXJONYCOTLn+Wm4RdgG7UbBFADwBcC5EN3De8tOThznhUa/f5sTEvBbEl/Ar0F9zJfpqFfpsTsNt1PJAZgI/5uOdDzZdJQkQ+JX7iFzjqrjePoNUrQgUABNp1+3rLGY/fhZZaXtm69svtDnGiWl83blLz0jtWyqjhl2vPGlodBfPOWLx4ewx2UTy4QTc9ubewAgPZnDXAxs8mQexJ//hu+635RPx+rX2L+O7iZhiaqTObgDUBFzWS/QN5vUv6T0ggCN6goMdtg3nLjtLwMLQZzOopCV8NmvlR+xiq1K+ms5Rt5cPF/v4bhtuV3Idd2c6sIZXwK4INlyZvpmsyhCTDTZgsfluNoi1XfiX6bNFGV/bAVCA2fDS3v2at4oDF6w4Qx9vj+Jyuxw3UaFdquLH8frX6reZo7yU3dI2wjO4upPBZkOtdMUsa47P8k8gKeObOaMsucDfaF9DUABO2CXsNrykd//mIuvrLlx5lgkNBYEslwi7xVfT/gDU2G0+nF3MLL1MYaq4G19lJQAQ+DLfhA4Hmw04Q7bJ0rDRRyp2tSo11vEnxS4qJwGdwbT+mzySDS/u3Q8g999w/rKzAUBmMMjjI+3oGzSbv2Y+EUMDwYpXsA6XUZkp40s+XHwWx7IH/+ab/Al2abAV6Jc5c/LetpXHtzOQJoYqe73+mrAL/wS2F/Xu1xBldOsvWH4OgCXyWKXfRsNL76t4ElfB+47GY4YyfTYdeadvjp29mfOEhmKaU/4VfLTao22PaPPxGv7RsAu+2/XPn7a/WOv/wuX/z95ZdjeOZV34XDuGYq6XmZuZ8WVmZvo6+GemP80fGeZmZi6I46SYKdaZKFZ73HmW9jqOnNWpsu6scSXa3kdq2H2lo7vv/jYkKNokxCG8sB9NyIr1p++Hi+cLkD9DYqNs6FcTeWnB/DUKmJJI4nwQkpDUZPlruiGC7xZz2P93DqbknlaxT/5c/MGK2Ngp5L+gSUsqlN82HhVMyZDNhjz40YVirCki9kP5brMhNu0HC/vRIJRAfdZU5xd8D/jtWA98CJz8Uf3F/+38NOaqrPf0Td9ec1S/RUv69k6sxVB+tqq3l0E/nMyX82g88KzcRlb3o+nZMV4/7lfTeDh/TfRDHXwuY/bF/1l9ZmuMySYz6//ot7+n/0s96XoSzBMJfjWxOgQc4h7xw7FWdT8cGDMiNtMbok4tH41Mdv4mx1XbhiOQv0acY0Vs+1czE7Lx+aT/zG9/10y3PjY6v03jQppV6vM2OBy4PzNi0/NS/Aks1GuEZMHE+cWtptj8NdBC4ROqC5x1vf/f3YOMFO4/vTKzWYmhxsT6fcwrqIJ3YhjiNk/MK4HZKfDOLMrT55+VbqRYRpzCfjS+cQtsQq4WXWkc59dua8U3iTvfk/X/s7M/8e3b07/5fbJ0G0DgEGAgvy3UA4zj/C1w/ngG6qzeRk7fjybqV8F1fRcvt8m34FJkCGfp31sHuFdJ/5nfKcSmBabz21TzQIpLf4dPfPF3ZnLP4/jbNXgAZuU2kiNgmYH8pu9HK7nVBD+wkpLnJb/A5asANiLS0r+2DhrGsWd/8wdsWVAqvMmLyyzoV8MsImSm+GG/HK4vnkwwwzObWNFR8i023eM+gOjvgl++2FjUU2/nAouRF/6te8DGQiGGW40uPH/TD6RHWy3QyoCjgSJaDBQsmeoW0uJ86YejhLS9Z1Zntgr5a65khPqB3wU/cn5cv+CrfLZSAS7+S/uAFWMkuVxsP+T3RTfShF8tngAQ97OFcMgCggnmt6mFXDM9s9k6/GjF0H4zfRZWDrZO1DzMWpJPHHyMxX9uH8CL6dR7/uYfUWqUxoblt8V92tVw5afT+XCsOqNic3YB4y8BKqdcJ/O4n40jsLlPUHTk8+9P75+7+8xSch+nLLxw89NjVcnnUCLU/Op+No1X9KsF/XCzJzbhR4vnr0k/mpCfnrcifNeLjUVz36TURj/xTVnvH1fE1lgzt3nvpVuewfNYoCsp3nqBL2Sh/WqUNNeEqGZIvD6vT/rh6mc20/lnYT+Zzj+LPIeJ+qJRL45BpqiPgVr9v2vvz2x1t8gcyfLjWVp64aZnUVW9PZN+NSEz7YcLPCfh/JPzQ3618ny4emYLB/QG/G6ucSUkiE0vr9Ki4jvBMF7ewez/fXtvLrTirEVfsv9yITY9ODvFcUggHALMmUgLuaofDtcHVi02OLbjfrLo+kiZjyaEEzliuj4ZxPkqnOJb+Nv2XhplFl+56bmyXiTqm3KxyZtMMAIiA0/UH/0mcSlC+Vv9zCYjDUdIdT9adbz0+ihA4XcjLlad4AZw4W/ae8nrv3Lz86iPF+ZigzviSkT0w2m/mvDLBawvrK9xl364WmyB/DVfZ04NcbIlPt38NYHzXM49vI7+9Za93C2r/+rNL5ijvqN+OL8tttYEQtUzz8bgbkmKVjf769vIuJ8M/UDhh1sXrp/oPMCHQAXu+HONqHt/2dlHifRfy8WG+pAZxIHtfoDH9iBJwbdoFosO5vnBl345cc212PS6jcjaEuBiXoqt/QArtuEqjzoQ4BBs6bx39K+6e4aprVnjJ1k2S6/e8gLqV2qTAHNYXUUlIT1lII3j1f1wtdgifjS9h2M1HE4znl96voGgit51EleJ1kTvL9p7858LqVljlb/w2q2xDdmcogeurKTKD8dZE+ILrLYErvjgEuGxWmzx9Y5xPxxxwdf1q+evBXGIbo38en/e3jOWL1aMpdduelntN4I5VOezKVz7uE3wKWrWJ876EscR4rXYYn60YD4buAJXfNZgv1KLl1UUjjWPZMz/SWcvn/16r99WiA18te7RKuDRpcs6X03X1/z4HpKbbjRsEwxG5a6JnU2WiOud6SfD9flHuIussBEfq+uduFmo/ojv7pkve+YrY/S53MzW1B+vVfBxw8qlTAo3mYzDczmOZWa4PvnXTxz80TH8LLb2qWc2kX9WwY+G1kMVPxuOivrR/DW90R/tN0f/uLPbMHpv3/4y46J0w6R6fpvww5Gv89U0Xt0Pt8lGcxPKP03qR+PrceDFcVE/ns/GlSkGHCzikKzYcOhLvzrXdc+BgTVs+JP7xaWvLOW45DOthgwjLmynSTRbvOCzqsL1LbxbEvXF+dWoZzaf7s7+4GOsy8+mdyCZbGV/Cnm105E/6OwuepBjo//WbW/oln/UpwxBueQTySwF/Wq6vU9O3MfN89czG8c6/Wim/XAUHPhV89cg6NACZ/AR3oQWyZd/da6d/NPPlg0/e/ypJRsN8sUKFtX7JI4FURBMGsfifjXRRUwaF6/L9ahnNt2VVLbRKnggny2ev8bjCnfwx+rz/Id/r7vr07duDc/Swju3v0F5mOn8NSG20dB8SE3ntwm/HOrH99bSYfZ61GLDrZb0iwF3S1E8HlePc6N+JLwXoteLkY3xGvNPdHYPhse8aYMC76+IDecXS7Z0PpvALeyH0/z4ysZ4fIcSbS02PdbnRwMm8NDWqimavwYJTp6/BnHghXI6/GRnJ1sS/ffWiE0ILZLfhsZE1GIaMd/E/Wzq+uJ8PWqxab+Zzj8L4Lq+eB0eaf9rBnApTh45+sTczlR81z2l4f+Pv3fLW2CIdr7OZ5t6fpv0q6n668atFlv168ImCcQFd2I/W/ipT/vdUAfnivYk7dATnR3cAOHYe7e+bXpYOL8tjusV/fEbQPi/Az1Mxa/FNt3bSaDVw59c56/xW3G+Fh06nzSBjsaRR1q7+a/+/Pt3v2MYsNHE89tyXOavoSfp2jmgRINmSjx/bdrZNPXMVrI60qfjV9N7PYre4qi+aH/g/OJaKIpEzuGHWzuHWNOzhvvwm70PR2JzXBN+lhsBSb+a8F1TLsLPJq4J9QUu+LXYpr1jssbjr7WD+WuqPpAortsoaLt8+FB3xye7Rjbd0sDynuTSh3e8O2KW8cP5bVFc1vfAq3DV+dT49DcWr8Um3nmpoIz1+dl4q1g9f20CXMh0jH/oodaOppsNUtMHq/z8z/mP7n2X7RE9x8h8tjge8kSDXyJtVV+cC3gttopDpKIpPO530341XR/8OC5WRrLHlz54YNu2YZhG/pk1cqk1st7Hd71PiYlVhR56zR3HOacWI+53A8vK5lCcCfxabNWFpmecwELeYEsfA9/SfG5KR9FS7qHx8f3d7as3jz5+tHcoF5sYIjiqAk7M9NGqfjZxLq/FNq0h8tsq4ZyzRP6a5gs7qcBL6pdu3Prxfd3tgzULWQe28PE9H/K2j51E3mpKGcTsovH8thSQCc4v8I2QWi22KYor7GcDM9B8gWjXcASfMx3FbeYf3dfabsXIbyGHn/1DK2IrXROJ+voWc8STuIf8blG/GY+6FrnG9ahX/ccFR3EljQuBKCklKU4Hn0hSeCDxIHEd5xd+pt3KfM4bnrmnZuYp/+nK6adOWZJ+NXFTqPt4Ak/jfOWHU3y16XpJfY1XH/XMpvPbiIf9btPKX/NAfcnnz7zBPHRne8fy6mw2Z+6DRjPL+5L9w3cdwrzDSiK/TbT3BRIIObR15pKCo/FabBveLOFco/FQa2Py/DX63VBf4pEZrxiH7kzb5ywXWPH9XHDeP3LXx+UzGOoH89uIKz7qo1YpP9N+Nr5JA36djbnrSGp8NiGubjtM7KIMkanNZyC1OM7ro+B4/XbNtwwsb/2nZWtmKZk1BtnKkFJD/bFjXia1EYN4Al/1MimJRA4wnl/j9cy2wXObiG0SuIfy2yLW0KjfbYTr3f3pR+M537ttx9blgtP01VfbDbOFo/cewb+8PH/UHJMo8nXmtymXXMCvplgbKrJabBUC56PbE+iIKIitXEjAPeABcPnkV4htezeX2LKlMXyht0Zs2q8WzGcL49oP5+vix/O6a7F9Bs9uFf1sujb4OK7rK75ojOAp8YNb2luHd/3LyXzlM//JjvfunCdDi6v6WpJ4fpveO1n51VAfHoRabJ/RNauGR8X8NfCJVMhf05Ibe3p855YtW0g51ru7xzdb0o+WKClKhjifmUP5bTr/Ta/z17/XYtv4Ec9H06KM56+JhdE6f80t6fw18SoAv71/U3vr0J1txY1k/tN8/6F58iksvVZEzFrAJV/74fRCLh7T7u5abJvC70Y8nr+m6081fw3zhEwTeO932lsMY34xFxsbEdqvxn6r9sMJfN35bXpDOl2/FttmEJyYt3TDY735azy/wovPyDZBEN17v93qMil7funhnm5oUDpTi7nX0tCdTzmHqZ26arFtgr7kpH42wWTSgJ73WMUCfFd+N3D8nd9qb5nz5WTWsmujw0eXHl1Au39cWlo8wXw2CLVCfhvqx/1yVovtMxVc5Xw2J1OJEDVkfeKoUeZ3A//t39jaGTTm/Jql1Mzyn5aT++LSg/0cF3ycq1p+G2akQH6bri/8asRrsW16v5vH2ylBPrE4Hl8dOcb/4Netm5J7y82upZYP/3/42JN98S+9GBXz2yAEfRR1rkO/Wi22iKWGPcaYH03PonyJ7RL3wFZAYgnZu7/c7pqlRv7Lcppzz3LRLR5/ZIkMbQu1pF53A9d+Ndc9TMFPWmbk12K7PvxupgPlwRP8AJ4jcX5wvPsrrY7ZNWsVm7Qup2aW0uETjx9TcxJvHKvltwm/GuM2vGp+G85Si22T+t0mzl/jzCj4TtaEOASP8/l4pbd/qd2BYcePnHp8ibtr6d2xZItepIwSB1/PSvxuvJtZi22Tdyd14193D5MI8ROmHIFLrzZaO5DBW7+4rX0NZ1w8+dAJyJQC1vOY9sPJhcjE5bFofpvm12LbtM0So4imnb+mcPB5fbx+B99f/qVtrbZfa7Syq6m9iq/8ae+f/r3jkJbye6E5L6QUw33dfji5dmQzy6wWm1q9od+9xfPXdMueIiPuE6WSjvFf+sXtLZI+Ov2HJ9nsiL9bk80Skc8WxnFENVsg7006arHJ/DQRjwHjTSC/DW/nBA5+id/MtABf/dluZ7gucnyF5PypJ0/pWYBPj+JFAzgifDC6SxefHik08Df/qMUWz1/TT3ngV8hnQ33V9C/nv/KznTaPLpzJxaaHWL6FIfLZJverEYnkt93Qo3njiQ0yQ/tBrCUBH7XJGo14/hq/PV6b9T+/zRvDlf7Dz1Y2SO7XLn/1CuaFgo/6o+sXz3H4tsQpnEQWGZhPwa9ntutxbhP5a1JSHvS7xXF5ywtvN/gv/nSnZZa3SNyLAsn9xJnHzn7yLfBZ36vntw0xgcf8cOCDXYvtehu6EYLGe5wfx0MebfDxSuDlA81uKxtKrWtmV1Irc//owp+ewXcnTNUu5UO0XAsSbdyDcYMtyKrFxqaF9qMx3ZS9QXK0H4581363Mv7L+9tzV1LHzdyvNtrZlZRSx3vnf/+8Dj3ktgIFFsxnE7NTPL8tmYfWq9RiuyEbJnr7cY4p5K+JRJnA+P7+Xc1GumQdt2I0UubzF/74fGAOw7HK+W1yRhLfF/FPszAaM/GfEi8+9R7yXnxyFEj53hkl/MT6WKtivD7y21nm1watlc/8fxc88+Us87PjV0j+WH2c3yHEMT6aRayv+Zwji/PP2H/qZ/EvV/jRtB+uQGT+2ohJXHyL53fFf3pPu2ljY6tdTpmfuPAHlzhbyvp6TiM/grM+5tAZafTXt5Fin+Kk5aCeA4P5bBza71Zy/hd3ZXP5n53sUmoks8y3+JXGkUt/c7HESANhBW4c0Zavnt8mREvh12K7wQTn1fLXKuCuN1PQ+W3f2rm3YXYpbbMLZpZ/bvFL6eSlP71srvhiz63ocl/d4yRejKAf7sYatdiEXy0YTi9wDp2/RtmRRb5/fUVsl9LAm2lLHhXVyOe4Rnrzyr9f4veDdlIuyFKrRWJ41A9HpBbbDSy4JFY4Ctm90t3Z+pVzWpCC7zrvplwo39u+pZlLzeycNVMns5XPgfev/tWP2TsLOLdxLIw/JxlI2u2W4ZiZmZkZJjOZ0jIz41yzW2ZmZmZmhttJj5mxzDRk5Ts5ntdVdBrXd+VW3//35CertqX+8o1ix/65mhSFf15NM9j5XI2UZZizPu34Vte8zdTMUYj4pYGoRJZ+/vNGYiZ2iiFnPkHRemJqaaBALbWMS84C2Nh0R/N1LXY0z2dO41Db68fXMxP6yKIayv+MhuOX9XDmybEfwOtRwe93g/nekD1FbcZH3ky+9mRXnZjR7GSI97cZH88xzaVB269NxGQZc+LZk2f31pR+Wde5Vtm/qf/Q53O9L2He3/b3Jq8siX41uzvaJ/zzavpazqzZriNpH6gAE3I7W63dOHoLqarLZmrnxrebHlXl7UMcHw0cEWr7nOLGEaICZX8xQfSH7F114bYPPpszX8v0lKSpXyr4XuT9FCOp7Pxob24P/c4A/fjWbNelwry/DX77nmK2Gu2mYnorxYh1LLurZkli9zlfG4UQz7uB1+lrlxYUOsedG+EFN1dHjtTd4nrtAdubhHDvbzv5tsQPI5+hpsRiu7ECtjft38rK8dHO5PjsI5ftSWAGMjkGux0kt4i+WIWMwirxo1Pvoah+LsehZhoFxkxbOye+NDE6sTQxJ+5lUxpNaeQthxSZtg8gqtU4JGp2+v2iAsvyx4elfiaeMZ6lOVwqEAfLysrxSx3+8ORZrb3bQUYO8TgmYRsyCstERdWnklFS0T/OMc4DzacxsZgZEH85Txdye2ibab3hJXPmE+JF7c/INjFOPCzH2xnz2W5sLg6jyazNrMxSPiYqmtVQ7rbX6CQqMBU7kFHYIka6nfa11gxnmt10y0UbMsqQonShHxJladoqcP9KqOxr7ZaLIViPjMIuzBJd3E48Vt1umski2v9fWFlZ0/k54pgOtlqq/kNXnsvKJVx2El3ETOxCRqESC8SzVZ/PJHTT6XOebkO1xss7CzzShfXLWLownVtnshrvWcn1Y51lY3H1V8QLWIRKZBR2iOki7XbWRlmu2o0NpkC6zTjXZWXl8JJBHDyrDULKM5mH8gH0l5x3FmlMwmZktPlhnuhW8wPDTGc2RdQ0LyWjyejnciXJJcU+J/HWmLf3Qi/zOdC25rsiLWZhp9bbbZgknnc76uPjcaMj5ql2Y6y1zkvWeMqsNoht5gdnfqkjHsYgLFbmCmalGCzurvrMX5tSVEezCxvGbJ3AdoWYnmcSZz4q7hEjlLMyphJLxDDxuNtBGYkyPmW8nXh2w9PKdwDm/GVlrabChmP8XONmkRaTsRYZA2vFBFFRU3ry7WnVEIw2R2ktAe0mm80pPPUeNyUqxASsQqWhL+swTlS4N6l919HG3xFst6esxc5XVqrVxqLMYLYyGSmU+bnBdKmz5a2iQozCEvzYaLuXsAYz5Iz3tNuh6tOHXhk0L3FpbmeS0aOvrfqs20E8KQZgKlaajyvXLsVokRZ3cl9VeEzq+LxMsds8ttt5Xn20P2pbYRR9iFP6A2Voj+l5M5F7MSEHScmlQ47xQc6Y05ZeGWlFLal5wPPxgqroVPY0naITdJyO4RjViFrUUTXqUINa1BA5hU6RjEIqcIooFm3kNKWmdAM1oRsiCUpQY4pSQ4Lc577sPvo3DpKr9U8bnz8if2yG9gL6Hr2OPM2l3hROVrCYaIy7885slqKLN5OZcVNqLmuyDKC9eAAvYCTmYRMyl4AN2bkYgRfFQ27HhnvF4/BzDm18TAd0wwpklNntfGRlBQffxkxkwGzGSNyHMpTK4NKn1E154eHXuF5PmR9cU8pO4j7xLHqJUZiB5dh2Qcy1BcvETIxCb1EhHnQ7BR3fB6VcV/uvmKxUGe+dGJHXz3kohwOynBsHFCir99Gt9BGKEWsf/Yp+Q9XUgIST+wrmROEFkZ8RKWXQnYIxijtxKqZEpDgrg4qzBRF+nCWWWxJlySUhS+GRdSNnqDpbTdVUJanGaRKEc98T+t/9U/tPJhXRW+md9GpiubSLptJuCisrWM5NOzyLDXm/nU3H07m/9kzSKxm3zA+vrM+TMgui9OK2m4+v9o97bCSFZzE970f7NXgYLUGW/wWCJRwRfB2j8z5wmzASj3hGy1GqhCT3AT6L6xvOD657ZalfenUOpc78X+36/vn4ev+4rvZfWT6CcdiWd/10Cr5tvzhefLNZmuNuLNTOkCbgaaSQNOGW8lLNuOYv/bjAaPvnNXpNXWqk8ARGa3dLLsKDaAeyXDqzWd6DbtqVxB2Yhi7ogCRKmPo8qWZuKbd6ueuvkcH1+izphdruZ7wuqF3fXt2/fnytf5x1QlqOZof203cXvBNkuRxms8TwVfTDBu0n6nly3YOq5cy4SS45Xi4ZtV3NzO1B26vHDOQe9IN+U/JWDMTn7NfGy3810sqhT9BX6SPUklTV0j9y7KMQ8q8KcpZfO9/2kGNoTa+m18iIk6rDlKGNtIlcsrJXI68g3oOnsAgZjW2YiV64H2UoCTXXaTW1Hr49NEk8iH6Yje3Qb0qei8fxLpDFfo28cnkVOmEI1hnugFyBieiBh5BCCX4oKclFCS85c5MXt11SjgfQDeOwBLuQ0diE0bgJbUCWq8Vsljfhdoww3oxVidWYjD54GnehVDEFG8RDX3f+7UnchifRD1Oxxnjn/waMxJ14B8hytZ6zWb2LPkXvptdTK3LIpJN0hI7SMToqOU7VId+vFqY9Tk0VbmzgXx2l39FPaBv9kawugS6F2awa0wfoPfRWabs2AebJ0hliTufKGnJJSNzc0gcU82/eUh62iVNCRqP6ZUISCzjKAfq7tNev6Kd0mKzsBZJrlgQ+hXvQG1OwGi8hc4moxDrMRF/cjo8iDrLYc7brjRjegq/jHvTEJKzAtgtqrx1YhvHojrvxDbwNBepxLfaczaqA2lBrSUtqLmlKTahYe/1FVAaRS0KGymk6kTvzO0KH/9NuHZsAEAJAEFy+/0pfY2O7EMGZq2Hhmo3+Vq9yI83sCzjhythAbIDYQGyA2EBsIDZAbCA2QGwgNhAbIDYQGyA2EBuIDRAbiA0QG4gNxAaIDcQGiA3EBmIDxAZiA8QGYgOxAWIDsQEb7ePiGN5/UYAAAAAASUVORK5CYII=", Oh = `
|
|
7971
|
+
const Rh = "data:image/png;base64,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", Oh = "data:image/png;base64,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", Hh = `
|
|
7921
7972
|
varying vec2 vUv;
|
|
7922
7973
|
void main() {
|
|
7923
7974
|
vUv = uv;
|
|
@@ -7938,7 +7989,7 @@ function Ma(i) {
|
|
|
7938
7989
|
const t = (A = i.isMobile) != null ? A : !0, e = (w = i.useNormalVector) != null ? w : !0;
|
|
7939
7990
|
let n = 10349931;
|
|
7940
7991
|
e && i.ballColor >= 0 && (n = i.ballColor);
|
|
7941
|
-
const o = new Vi(), s = new wl(0.3, 0.3), r = t ? Rh :
|
|
7992
|
+
const o = new Vi(), s = new wl(0.3, 0.3), r = t ? Rh : Oh, a = new Gr().load(r);
|
|
7942
7993
|
a.encoding = Cl;
|
|
7943
7994
|
const l = new un({
|
|
7944
7995
|
map: a,
|
|
@@ -7947,7 +7998,7 @@ function Ma(i) {
|
|
|
7947
7998
|
}), c = new Fn(s, l), d = new El();
|
|
7948
7999
|
d.add(new Pl(new _(0, 0, 0), new _(0, 0, 0.1)));
|
|
7949
8000
|
const h = new Il(d, 8, 3e-3), u = new xl({
|
|
7950
|
-
vertexShader:
|
|
8001
|
+
vertexShader: Hh,
|
|
7951
8002
|
fragmentShader: Fh,
|
|
7952
8003
|
depthTest: !1,
|
|
7953
8004
|
transparent: !0
|
|
@@ -8114,7 +8165,7 @@ class nn extends hi {
|
|
|
8114
8165
|
!this.mobileStartPoint || !this.mobileNowPoint || (this.dashed.points[0].position.copy(this.mobileStartPoint.position), this.dashed.points[1].position.copy(this.mobileNowPoint.position), this.dashed.mesh.setPoints(this.mobileStartPoint.position, this.mobileNowPoint.position), this.dashed.distanceItem.update(this.five), this.hook.emit("editedDashedLineChange", this.dashed));
|
|
8115
8166
|
});
|
|
8116
8167
|
f(this, "updateMagnifier", (e) => {
|
|
8117
|
-
this.magnifier.
|
|
8168
|
+
this.magnifier.containerDom !== this.container && this.magnifier.appendTo(this.container), this.magnifier.getCurrentState().enabled || this.magnifier.enable(), requestAnimationFrame(() => this.magnifier.renderWithPoint(e.position)), this.five.needsRender = !0;
|
|
8118
8169
|
});
|
|
8119
8170
|
f(this, "onGetStartPoint", (e) => {
|
|
8120
8171
|
this.mobileStartPoint = e;
|
|
@@ -8138,7 +8189,7 @@ class nn extends hi {
|
|
|
8138
8189
|
this.state = n, this.state === "watching" ? this.five.helperVisible = !0 : this.five.helperVisible = !1;
|
|
8139
8190
|
});
|
|
8140
8191
|
f(this, "chooseLine", (e) => {
|
|
8141
|
-
const n =
|
|
8192
|
+
const n = Hi(e);
|
|
8142
8193
|
this.highlightLines(n), this.five.needsRender = !0, this.hook.emit(
|
|
8143
8194
|
"selectedChange",
|
|
8144
8195
|
n.map((o) => o)
|
|
@@ -8957,8 +9008,8 @@ function hf(i, t, e) {
|
|
|
8957
9008
|
k = null;
|
|
8958
9009
|
break;
|
|
8959
9010
|
}
|
|
8960
|
-
S.forEach((
|
|
8961
|
-
F.includes(
|
|
9011
|
+
S.forEach((O) => {
|
|
9012
|
+
F.includes(O) && u[O](n);
|
|
8962
9013
|
}), k = k.parentNode;
|
|
8963
9014
|
}
|
|
8964
9015
|
};
|
|
@@ -9262,16 +9313,16 @@ const Ei = 1e-3, Is = 0.01, bf = "https://vrlab-image4.ljcdn.com/release/web/Pan
|
|
|
9262
9313
|
), nt.setFromProjectionMatrix(Ct);
|
|
9263
9314
|
const lt = g.tags.filter(
|
|
9264
9315
|
(De) => nt.containsPoint(De.position) && !De.destroying
|
|
9265
|
-
).length, ct = g.points.reduce((De,
|
|
9266
|
-
if (g.tags.find((Se) =>
|
|
9316
|
+
).length, ct = g.points.reduce((De, Oe) => {
|
|
9317
|
+
if (g.tags.find((Se) => Oe.id === Se.id && !Se.destroying))
|
|
9267
9318
|
return De;
|
|
9268
|
-
const Ze = re.position.clone().setY(n).distanceTo(
|
|
9269
|
-
if (Ze < c || Ze > d || !nt.containsPoint(
|
|
9319
|
+
const Ze = re.position.clone().setY(n).distanceTo(Oe.position);
|
|
9320
|
+
if (Ze < c || Ze > d || !nt.containsPoint(Oe.position))
|
|
9270
9321
|
return De;
|
|
9271
|
-
const en =
|
|
9272
|
-
if (en.angleTo(
|
|
9322
|
+
const en = Oe.position.clone().sub(re.position).setY(0);
|
|
9323
|
+
if (en.angleTo(Oe.normal) > Math.PI / 2 - r && en.angleTo(Oe.normal) < Math.PI / 2 + r)
|
|
9273
9324
|
return De;
|
|
9274
|
-
const Ft =
|
|
9325
|
+
const Ft = Oe.position.clone().project(re);
|
|
9275
9326
|
if (!g.tags.every((Se) => {
|
|
9276
9327
|
if (Se.position.clone().sub(re.position).setY(0).angleTo(ge.setY(0)) > Math.PI / 2)
|
|
9277
9328
|
return !0;
|
|
@@ -9282,11 +9333,11 @@ const Ei = 1e-3, Is = 0.01, bf = "https://vrlab-image4.ljcdn.com/release/web/Pan
|
|
|
9282
9333
|
}))
|
|
9283
9334
|
return De;
|
|
9284
9335
|
const Et = {
|
|
9285
|
-
id:
|
|
9286
|
-
position:
|
|
9287
|
-
normal:
|
|
9288
|
-
replacement:
|
|
9289
|
-
weight:
|
|
9336
|
+
id: Oe.id,
|
|
9337
|
+
position: Oe.position,
|
|
9338
|
+
normal: Oe.normal,
|
|
9339
|
+
replacement: Oe.replacement,
|
|
9340
|
+
weight: Oe.weight,
|
|
9290
9341
|
distance: Ze
|
|
9291
9342
|
};
|
|
9292
9343
|
let Ce;
|
|
@@ -9303,7 +9354,7 @@ const Ei = 1e-3, Is = 0.01, bf = "https://vrlab-image4.ljcdn.com/release/web/Pan
|
|
|
9303
9354
|
}
|
|
9304
9355
|
return Ce !== void 0 ? De.splice(Ce, 0, Et) : De.push(Et), De;
|
|
9305
9356
|
}, []);
|
|
9306
|
-
for (let De = 0,
|
|
9357
|
+
for (let De = 0, Oe = ct.length; De < Oe && !(lt + be.length >= s); De++) {
|
|
9307
9358
|
const Ze = ct[De];
|
|
9308
9359
|
if (be.find((Ce) => Ze.id === Ce.id))
|
|
9309
9360
|
continue;
|
|
@@ -9366,7 +9417,7 @@ const Ei = 1e-3, Is = 0.01, bf = "https://vrlab-image4.ljcdn.com/release/web/Pan
|
|
|
9366
9417
|
}), se.render && (g.render = se.render), se.template && (g.template = se.template), se.events && (g.events = se.events), se.enabled === !1 && (g.enabled = se.enabled), se.folded === !0 && (g.folded = se.folded);
|
|
9367
9418
|
}, F = (se) => {
|
|
9368
9419
|
g.intersectObjects = se, C();
|
|
9369
|
-
},
|
|
9420
|
+
}, O = () => {
|
|
9370
9421
|
g.enabled = !0, C();
|
|
9371
9422
|
}, G = () => {
|
|
9372
9423
|
g.enabled = !1, v.$set({ origins: [] }), g.tags.forEach((se) => {
|
|
@@ -9388,23 +9439,23 @@ const Ei = 1e-3, Is = 0.01, bf = "https://vrlab-image4.ljcdn.com/release/web/Pan
|
|
|
9388
9439
|
g.tags.forEach((ve) => {
|
|
9389
9440
|
ve.id === se && ve.app.$set({ folded: !0 });
|
|
9390
9441
|
});
|
|
9391
|
-
},
|
|
9442
|
+
}, H = () => {
|
|
9392
9443
|
i.once("renderFrame", L);
|
|
9393
9444
|
}, N = () => {
|
|
9394
9445
|
e || (e = i.getElement().parentElement), e && e.appendChild(u), g.forbidden = !1, n = i.model.bounding.getCenter(new E.Vector3()).y, C(), i.on("panoWillArrive", y), i.on("panoArrived", w), i.on("modeChange", x), i.on("cameraUpdate", A);
|
|
9395
9446
|
}, Z = () => {
|
|
9396
9447
|
m = null, h.disposeAll(), v.$destroy(), g.tags.forEach((se) => {
|
|
9397
9448
|
se.app.$destroy(), se = null;
|
|
9398
|
-
}), g.origins = [], g.tags = [], i.off("modelLoaded", N), i.off("renderFrame", L), i.off("panoWillArrive", y), i.off("panoArrived", w), i.off("modeChange", x), i.off("cameraUpdate", A), i.off("dispose", Z), window.removeEventListener("resize",
|
|
9449
|
+
}), g.origins = [], g.tags = [], i.off("modelLoaded", N), i.off("renderFrame", L), i.off("panoWillArrive", y), i.off("panoArrived", w), i.off("modeChange", x), i.off("cameraUpdate", A), i.off("dispose", Z), window.removeEventListener("resize", H, !1);
|
|
9399
9450
|
};
|
|
9400
|
-
return window.addEventListener("resize",
|
|
9451
|
+
return window.addEventListener("resize", H, !1), (Re = i == null ? void 0 : i.model) != null && Re.loaded ? N() : i.once("modelLoaded", N), i.on("dispose", Z), {
|
|
9401
9452
|
load: k,
|
|
9402
9453
|
setIntersectObjects: F,
|
|
9403
9454
|
unfoldAll: Y,
|
|
9404
9455
|
foldAll: P,
|
|
9405
9456
|
unfold: I,
|
|
9406
9457
|
fold: T,
|
|
9407
|
-
enable:
|
|
9458
|
+
enable: O,
|
|
9408
9459
|
disable: G,
|
|
9409
9460
|
hooks: p,
|
|
9410
9461
|
dispose: Z
|
|
@@ -9449,7 +9500,7 @@ class Ef extends oe {
|
|
|
9449
9500
|
super(), ie(this, t, Cf, wf, ne, { itemLabel: 0, hooks: 2 }, yf);
|
|
9450
9501
|
}
|
|
9451
9502
|
}
|
|
9452
|
-
function
|
|
9503
|
+
function Oa(i, t = 200) {
|
|
9453
9504
|
let e;
|
|
9454
9505
|
return function(...n) {
|
|
9455
9506
|
clearTimeout(e), e = setTimeout(() => {
|
|
@@ -9544,14 +9595,14 @@ function kf(i, t, e) {
|
|
|
9544
9595
|
const { Raycaster: n, Vector3: o } = E;
|
|
9545
9596
|
let { five: s } = t, { modelOcclusionEnable: r } = t, { itemLabels: a } = t, { hooks: l } = t, { displayStrategyType: c } = t, d = null, h = null, u, p, m = [], g = !0;
|
|
9546
9597
|
const v = (P, I) => {
|
|
9547
|
-
const T = new n(),
|
|
9548
|
-
T.set(
|
|
9598
|
+
const T = new n(), H = P.camera.position.clone(), N = new o().fromArray(I.modelPosition), Z = N.distanceTo(H);
|
|
9599
|
+
T.set(H.clone(), N.clone().sub(H).normalize());
|
|
9549
9600
|
const [X] = P.model.intersectRaycaster(T);
|
|
9550
9601
|
return !(X && X.distance + 1 < Z);
|
|
9551
9602
|
}, A = (P, I) => {
|
|
9552
|
-
const T = new o(I.modelPosition[0], I.modelPosition[1], I.modelPosition[2]),
|
|
9603
|
+
const T = new o(I.modelPosition[0], I.modelPosition[1], I.modelPosition[2]), H = P.project2d(T), N = H == null ? void 0 : H.x, Z = H == null ? void 0 : H.y;
|
|
9553
9604
|
return [N, Z];
|
|
9554
|
-
}, w = (P) => `translate(${P[0]}px, ${P[1]}px)`, y = (P, I) => m.length === 0 ? !1 : !!m.find((
|
|
9605
|
+
}, w = (P) => `translate(${P[0]}px, ${P[1]}px)`, y = (P, I) => m.length === 0 ? !1 : !!m.find((H) => P[0] >= H[0] - I && P[0] <= H[0] + I || P[1] >= H[1] - Ds && P[1] <= H[1] + Ds);
|
|
9555
9606
|
function x(P, I) {
|
|
9556
9607
|
switch (I) {
|
|
9557
9608
|
case Yt.SMALL:
|
|
@@ -9576,19 +9627,19 @@ function kf(i, t, e) {
|
|
|
9576
9627
|
transform: me,
|
|
9577
9628
|
strokeLength: U
|
|
9578
9629
|
});
|
|
9579
|
-
}),
|
|
9630
|
+
}), H = T.filter(({ visible: N }) => N).map((N) => ({
|
|
9580
9631
|
itemLabelItem: N,
|
|
9581
9632
|
distance: new o(N.modelPosition[0], N.modelPosition[1], N.modelPosition[2]).clone().distanceTo(P.camera.position)
|
|
9582
9633
|
})).sort((N, Z) => N.distance - Z.distance);
|
|
9583
9634
|
return T.map((N) => {
|
|
9584
|
-
const Z =
|
|
9635
|
+
const Z = H.findIndex((X) => X.itemLabelItem.id === N.id);
|
|
9585
9636
|
return Z !== void 0 ? he(W({}, N), { zIndex: Z * 10 }) : N;
|
|
9586
9637
|
});
|
|
9587
9638
|
}, C = () => {
|
|
9588
9639
|
m = [], e(1, h = L(s, h));
|
|
9589
9640
|
};
|
|
9590
9641
|
Ki(() => {
|
|
9591
|
-
|
|
9642
|
+
O();
|
|
9592
9643
|
});
|
|
9593
9644
|
const S = () => {
|
|
9594
9645
|
e(4, g = !1), k();
|
|
@@ -9596,14 +9647,14 @@ function kf(i, t, e) {
|
|
|
9596
9647
|
Ue(() => {
|
|
9597
9648
|
e(1, h = a), d = a, C(), F(), s.on("cameraUpdate", S);
|
|
9598
9649
|
});
|
|
9599
|
-
const k =
|
|
9650
|
+
const k = Oa(
|
|
9600
9651
|
() => {
|
|
9601
9652
|
e(4, g = !0), C();
|
|
9602
9653
|
},
|
|
9603
9654
|
300
|
|
9604
9655
|
), F = () => {
|
|
9605
9656
|
window.addEventListener("resize", G, !1);
|
|
9606
|
-
},
|
|
9657
|
+
}, O = () => {
|
|
9607
9658
|
d !== a && (e(1, h = a), d = a, C());
|
|
9608
9659
|
}, G = () => {
|
|
9609
9660
|
s.once("renderFrame", C);
|
|
@@ -9818,8 +9869,8 @@ const dA = (i, { videoElement: t }) => {
|
|
|
9818
9869
|
const F = new E.MeshBasicMaterial({
|
|
9819
9870
|
map: e.videoTextureEnabled ? e.videoTexture : e.imageTexture,
|
|
9820
9871
|
side: E.DoubleSide
|
|
9821
|
-
}),
|
|
9822
|
-
|
|
9872
|
+
}), O = new E.Mesh(y, F);
|
|
9873
|
+
O.renderOrder = 1, O.name = `ModelTVVideoPlugin-${w}-${performance.now()}`;
|
|
9823
9874
|
const G = [A[1], A[2], A[3], A[0]], Y = n.create3DDomContainer(G);
|
|
9824
9875
|
if (Y != null && Y.container) {
|
|
9825
9876
|
const P = document.createElement("div");
|
|
@@ -9827,9 +9878,9 @@ const dA = (i, { videoElement: t }) => {
|
|
|
9827
9878
|
const I = document.createElement("img");
|
|
9828
9879
|
I.src = "//vrlab-static.ljcdn.com/release/web/play.2ada5b6f.png", I.style.width = "200px", I.style.pointerEvents = "auto", I.onclick = () => {
|
|
9829
9880
|
e.videoTexture.image.muted = !1, e.videoTexture.image.play();
|
|
9830
|
-
}, P.appendChild(I), o.set(
|
|
9881
|
+
}, P.appendChild(I), o.set(O, Y);
|
|
9831
9882
|
}
|
|
9832
|
-
return
|
|
9883
|
+
return O;
|
|
9833
9884
|
}), d = (A) => {
|
|
9834
9885
|
const w = new E.TextureLoader().load(A);
|
|
9835
9886
|
return w.minFilter = E.LinearFilter, w.magFilter = E.LinearFilter, w.format = E.RGBFormat, w;
|
|
@@ -10022,7 +10073,7 @@ const { Raycaster: Rf, Vector3: uA } = E, Ss = (i, t, e, n) => {
|
|
|
10022
10073
|
return r && r.distance + 0.01 < n;
|
|
10023
10074
|
};
|
|
10024
10075
|
var Ut = /* @__PURE__ */ ((i) => (i.SMALL = "small", i.MIDLLE = "middle", i.LARGE = "large", i.EXTRA_LARGE = "x-large", i))(Ut || {});
|
|
10025
|
-
const
|
|
10076
|
+
const Of = (i, t) => {
|
|
10026
10077
|
switch (t) {
|
|
10027
10078
|
case Ut.SMALL:
|
|
10028
10079
|
return Math.ceil(-27.78 * i + 85);
|
|
@@ -10033,7 +10084,7 @@ const Hf = (i, t) => {
|
|
|
10033
10084
|
case Ut.EXTRA_LARGE:
|
|
10034
10085
|
return Math.ceil(-92.59 * i + 300);
|
|
10035
10086
|
}
|
|
10036
|
-
},
|
|
10087
|
+
}, Hf = (i) => `translate(${i[0]}px, ${i[1]}px)`;
|
|
10037
10088
|
function zs(i) {
|
|
10038
10089
|
return i.map((t) => W({
|
|
10039
10090
|
observerIndex: void 0,
|
|
@@ -10153,26 +10204,26 @@ let Nf = 11;
|
|
|
10153
10204
|
function Wf(i, t, e) {
|
|
10154
10205
|
const { Raycaster: n, Vector3: o } = E;
|
|
10155
10206
|
let { five: s } = t, { modelOcclusionEnable: r } = t, { itemLabels: a } = t, { hooks: l } = t, { displayStrategyType: c } = t, { maxVisibleDistance: d } = t, h = null, u = null, p = (s == null ? void 0 : s.currentMode) === Be.Mode.Panorama, m, g, v = [], A = !0;
|
|
10156
|
-
const w = (T,
|
|
10157
|
-
const N = T.camera.position.clone(), Z = new o(
|
|
10207
|
+
const w = (T, H) => {
|
|
10208
|
+
const N = T.camera.position.clone(), Z = new o(H.modelPosition[0], H.modelPosition[1], H.modelPosition[2]), X = Z.distanceTo(N);
|
|
10158
10209
|
return d !== void 0 && T.state.mode === Be.Mode.Panorama && X > d ? !1 : Ss(T, Z.clone().sub(N).normalize(), N, X);
|
|
10159
10210
|
}, y = (T) => {
|
|
10160
|
-
const { camera:
|
|
10211
|
+
const { camera: H, model: N } = s, { x: Z, y: X, z: U } = T.clone().project(H), le = (Z + 1) / 2, ue = (2 - (X + 1)) / 2, ke = Math.abs(U) < 1 && [le, ue].every((Re) => Re < 1 && Re >= 0);
|
|
10161
10212
|
return Boolean(ke);
|
|
10162
|
-
}, x = (T,
|
|
10163
|
-
const N = new o(
|
|
10213
|
+
}, x = (T, H) => {
|
|
10214
|
+
const N = new o(H.modelPosition[0], H.modelPosition[1], H.modelPosition[2]), Z = T.project2d(N), X = Z == null ? void 0 : Z.x, U = Z == null ? void 0 : Z.y;
|
|
10164
10215
|
return [X, U];
|
|
10165
|
-
}, L = (T,
|
|
10166
|
-
const N =
|
|
10216
|
+
}, L = (T, H) => {
|
|
10217
|
+
const N = H.map((X) => {
|
|
10167
10218
|
if (T.state.panoIndex !== X.panoIndex)
|
|
10168
10219
|
return he(W({}, X), { visible: !1 });
|
|
10169
10220
|
const U = x(T, X);
|
|
10170
10221
|
X.name.length * Nf;
|
|
10171
|
-
const le =
|
|
10222
|
+
const le = Of(X.modelPosition[1], c), ue = T.currentMode === Be.Mode.Panorama ? y(new o(X.position[0], X.position[1], X.position[2])) : !0, me = r ? w(T, X) : !1, we = ue && !me;
|
|
10172
10223
|
if (!we)
|
|
10173
10224
|
return he(W({}, X), { visible: we });
|
|
10174
10225
|
v.push(U);
|
|
10175
|
-
const ke =
|
|
10226
|
+
const ke = Hf(U);
|
|
10176
10227
|
return he(W({}, X), {
|
|
10177
10228
|
visible: we,
|
|
10178
10229
|
transform: ke,
|
|
@@ -10190,21 +10241,21 @@ function Wf(i, t, e) {
|
|
|
10190
10241
|
v = [], e(1, u = L(s, u));
|
|
10191
10242
|
}, S = () => {
|
|
10192
10243
|
e(5, A = !1), k();
|
|
10193
|
-
}, k =
|
|
10244
|
+
}, k = Oa(
|
|
10194
10245
|
() => {
|
|
10195
10246
|
e(5, A = !0), C();
|
|
10196
10247
|
},
|
|
10197
10248
|
300
|
|
10198
10249
|
), F = () => {
|
|
10199
10250
|
s.once("renderFrame", C);
|
|
10200
|
-
},
|
|
10251
|
+
}, O = () => {
|
|
10201
10252
|
window.addEventListener("resize", F, !1);
|
|
10202
10253
|
}, G = () => {
|
|
10203
10254
|
h !== a && (e(1, u = zs(a)), h = a, C());
|
|
10204
|
-
}, Y = (T,
|
|
10255
|
+
}, Y = (T, H) => {
|
|
10205
10256
|
let N = [];
|
|
10206
|
-
for (let X = 0; X <
|
|
10207
|
-
const { position: U, panoIndex: le } =
|
|
10257
|
+
for (let X = 0; X < H.length; X++) {
|
|
10258
|
+
const { position: U, panoIndex: le } = H[X], ue = T.distanceTo(U);
|
|
10208
10259
|
(d === void 0 || ue <= d || s.state.mode !== Be.Mode.Panorama) && N.push({ panoIndex: le, obVector: U, distance: ue });
|
|
10209
10260
|
}
|
|
10210
10261
|
N = N.sort((X, U) => X.distance - U.distance);
|
|
@@ -10216,13 +10267,13 @@ function Wf(i, t, e) {
|
|
|
10216
10267
|
break;
|
|
10217
10268
|
}
|
|
10218
10269
|
}
|
|
10219
|
-
return typeof Z == "number" ?
|
|
10270
|
+
return typeof Z == "number" ? H[Z] : void 0;
|
|
10220
10271
|
}, P = (T) => {
|
|
10221
10272
|
if (s.state.mode === Be.Mode.Panorama)
|
|
10222
10273
|
return;
|
|
10223
|
-
const
|
|
10274
|
+
const H = s.work.observers, N = new o().fromArray(T.position), Z = Y(N, H);
|
|
10224
10275
|
if (Z && (T.observerIndex = Z.panoIndex), typeof T.observerIndex == "number") {
|
|
10225
|
-
const X =
|
|
10276
|
+
const X = H[T.observerIndex], U = N.clone().sub(X.position).normalize(), le = {
|
|
10226
10277
|
longitude: Math.PI + Math.atan2(U.x, U.z),
|
|
10227
10278
|
latitude: Math.acos(U.y / U.length()) - Math.PI / 2
|
|
10228
10279
|
};
|
|
@@ -10241,7 +10292,7 @@ function Wf(i, t, e) {
|
|
|
10241
10292
|
Ki(() => {
|
|
10242
10293
|
G();
|
|
10243
10294
|
}), Ue(() => {
|
|
10244
|
-
e(1, u = zs(a)), h = a, C(),
|
|
10295
|
+
e(1, u = zs(a)), h = a, C(), O(), s.on("cameraUpdate", S);
|
|
10245
10296
|
}), wt(() => {
|
|
10246
10297
|
s.off("cameraUpdate", S), window.removeEventListener("resize", F, !1);
|
|
10247
10298
|
});
|
|
@@ -10570,12 +10621,12 @@ class im extends Jf {
|
|
|
10570
10621
|
let C = 0;
|
|
10571
10622
|
l.sort((S, k) => k.disFromCameraToLabel - S.disFromCameraToLabel);
|
|
10572
10623
|
for (let S = 1; S < l.length; S++) {
|
|
10573
|
-
const { index: k, left: F, top:
|
|
10624
|
+
const { index: k, left: F, top: O } = l[S - 1], { index: G, left: Y, top: P } = l[S], I = this.container.children[k], T = this.container.children[G];
|
|
10574
10625
|
if (!I || !T)
|
|
10575
10626
|
return;
|
|
10576
|
-
const
|
|
10627
|
+
const H = {
|
|
10577
10628
|
left: s * F / 100,
|
|
10578
|
-
top: r *
|
|
10629
|
+
top: r * O / 100,
|
|
10579
10630
|
width: (u = (h = (d = I.children) == null ? void 0 : d[0]) == null ? void 0 : h.clientWidth) != null ? u : 0,
|
|
10580
10631
|
height: (g = (m = (p = I.children) == null ? void 0 : p[0]) == null ? void 0 : m.clientHeight) != null ? g : 0
|
|
10581
10632
|
}, N = {
|
|
@@ -10584,7 +10635,7 @@ class im extends Jf {
|
|
|
10584
10635
|
width: (w = (A = (v = T.children) == null ? void 0 : v[0]) == null ? void 0 : A.clientWidth) != null ? w : 0,
|
|
10585
10636
|
height: (L = (x = (y = T.children) == null ? void 0 : y[0]) == null ? void 0 : x.clientHeight) != null ? L : 0
|
|
10586
10637
|
};
|
|
10587
|
-
Kf(
|
|
10638
|
+
Kf(H, N) && (C++, c[k].transform = `translate(-50%, ${(C - 1) * 100 - 50}%)`, c[G].transform = `translate(-50%, ${C * 100 - 50}%)`);
|
|
10588
10639
|
}
|
|
10589
10640
|
}
|
|
10590
10641
|
this.labelItems = c, this.render();
|
|
@@ -10708,12 +10759,12 @@ function lm(i, t) {
|
|
|
10708
10759
|
x !== void 0 && L > 0.8 && (C = v + 1), x !== void 0 && L > 0.2 && L < 0.3 ? C = v : A > 0.2 && A < 0.3 && (C = v + 1);
|
|
10709
10760
|
let S = u;
|
|
10710
10761
|
if (w !== void 0 && y > 0.2 && y < 0.3 ? S = u + 1 : A > 0.2 && A < 0.3 && (S = u), d[S] && d[S + 1]) {
|
|
10711
|
-
const
|
|
10712
|
-
if (
|
|
10713
|
-
if (
|
|
10762
|
+
const O = p[g - 1];
|
|
10763
|
+
if (O)
|
|
10764
|
+
if (O.equals(d[S]))
|
|
10714
10765
|
S += 1;
|
|
10715
10766
|
else {
|
|
10716
|
-
const G = new _().subVectors(d[S + 1], d[S]), Y = new _().subVectors(
|
|
10767
|
+
const G = new _().subVectors(d[S + 1], d[S]), Y = new _().subVectors(O, d[S]);
|
|
10717
10768
|
G.angleTo(Y) < Math.PI / 2 && (S += 1);
|
|
10718
10769
|
}
|
|
10719
10770
|
}
|
|
@@ -10738,8 +10789,8 @@ function js(i, t, e) {
|
|
|
10738
10789
|
p[A * 6 + 0] = k.x, p[A * 6 + 1] = k.y, p[A * 6 + 2] = k.z;
|
|
10739
10790
|
const F = new _(L - w * n, C + 0.05, S - y * n);
|
|
10740
10791
|
p[A * 6 + 3] = F.x, p[A * 6 + 4] = F.y, p[A * 6 + 5] = F.z, g += A > 0 ? i[A - 1].clone().sub(i[A]).length() : 0;
|
|
10741
|
-
const
|
|
10742
|
-
m[A * 4 + 0] = 0, m[A * 4 + 1] =
|
|
10792
|
+
const O = g / t / o;
|
|
10793
|
+
m[A * 4 + 0] = 0, m[A * 4 + 1] = O, m[A * 4 + 2] = 1, m[A * 4 + 3] = O, A !== i.length - 1 && (u[A * 6 + 0] = A * 2 + 0, u[A * 6 + 1] = A * 2 + 2, u[A * 6 + 2] = A * 2 + 1, u[A * 6 + 3] = A * 2 + 2, u[A * 6 + 4] = A * 2 + 3, u[A * 6 + 5] = A * 2 + 1);
|
|
10743
10794
|
}
|
|
10744
10795
|
const v = new E.BufferGeometry();
|
|
10745
10796
|
return v.setAttribute("position", new E.BufferAttribute(p, 3)), v.setAttribute("uv", new E.BufferAttribute(m, 2)), v.setIndex(new E.BufferAttribute(u, 1)), v;
|
|
@@ -10759,8 +10810,8 @@ function dm(i) {
|
|
|
10759
10810
|
function Bt(i) {
|
|
10760
10811
|
return i != null;
|
|
10761
10812
|
}
|
|
10762
|
-
const
|
|
10763
|
-
class Ga extends
|
|
10813
|
+
const Ha = "v1.0.1", Fa = "GuideLinePlugin", Fi = `${Fa}@${Ha}`, Qs = (i) => `${Fi}--${i}`;
|
|
10814
|
+
class Ga extends Ht {
|
|
10764
10815
|
constructor(e, n) {
|
|
10765
10816
|
super(e, n);
|
|
10766
10817
|
f(this, "state", {
|
|
@@ -10864,7 +10915,7 @@ class Ga extends Ot {
|
|
|
10864
10915
|
});
|
|
10865
10916
|
}
|
|
10866
10917
|
}
|
|
10867
|
-
f(Ga, "lasestVersion",
|
|
10918
|
+
f(Ga, "lasestVersion", Ha);
|
|
10868
10919
|
const um = (i, t) => new Ga(i, t);
|
|
10869
10920
|
function Rs(i) {
|
|
10870
10921
|
const t = Math.abs(Math.cos(i.latitude));
|
|
@@ -10907,14 +10958,14 @@ function Am(i) {
|
|
|
10907
10958
|
}, i);
|
|
10908
10959
|
});
|
|
10909
10960
|
}
|
|
10910
|
-
const Na = "v1.0.6", Wa = "CruisePlugin", fi = `${Wa}@${Na}`,
|
|
10961
|
+
const Na = "v1.0.6", Wa = "CruisePlugin", fi = `${Wa}@${Na}`, Os = () => {
|
|
10911
10962
|
console.error(`${fi} is disposed`);
|
|
10912
10963
|
}, vm = () => {
|
|
10913
10964
|
console.warn(`${fi} is disabled`);
|
|
10914
10965
|
}, bm = () => {
|
|
10915
10966
|
console.error(`${fi} is disabled`);
|
|
10916
10967
|
}, Pi = /* @__PURE__ */ new Map();
|
|
10917
|
-
class Xa extends
|
|
10968
|
+
class Xa extends Ht {
|
|
10918
10969
|
constructor(e, n) {
|
|
10919
10970
|
super(e, n);
|
|
10920
10971
|
f(this, "state", {
|
|
@@ -10953,7 +11004,7 @@ class Xa extends Ot {
|
|
|
10953
11004
|
return J(this, null, function* () {
|
|
10954
11005
|
var d, h, u, p, m;
|
|
10955
11006
|
if (this.state.disposed)
|
|
10956
|
-
return
|
|
11007
|
+
return Os();
|
|
10957
11008
|
this.privateState.fiveOriginGetProgress || (h = (d = this.five.controller) == null ? void 0 : d.cameraMotion) != null && h.getProgress || (yield this.waitFiveLoaded(), this.privateState.fiveOriginGetProgress = (p = (u = this.five.controller) == null ? void 0 : u.cameraMotion) == null ? void 0 : p.getProgress), this.clear();
|
|
10958
11009
|
const s = this.data ? JSON.parse(JSON.stringify(this.data)) : void 0, r = yield this.formatData(e);
|
|
10959
11010
|
this.data = r, this.hooks.emit("dataChange", r, s);
|
|
@@ -11012,7 +11063,7 @@ class Xa extends Ot {
|
|
|
11012
11063
|
setState(e, n) {
|
|
11013
11064
|
var s;
|
|
11014
11065
|
if (this.state.disposed)
|
|
11015
|
-
return
|
|
11066
|
+
return Os();
|
|
11016
11067
|
if (!this.state.enabled && e.enabled !== !0 && e.disposed !== !0)
|
|
11017
11068
|
return bm();
|
|
11018
11069
|
const o = W({}, this.state);
|
|
@@ -11027,11 +11078,11 @@ class Xa extends Ot {
|
|
|
11027
11078
|
})();
|
|
11028
11079
|
if (o.keyframes)
|
|
11029
11080
|
return {
|
|
11030
|
-
keyframesId:
|
|
11081
|
+
keyframesId: He(),
|
|
11031
11082
|
keyframes: o.keyframes.map((s, r) => {
|
|
11032
11083
|
var c;
|
|
11033
11084
|
const a = o.keyframes[r + 1], l = (() => !a || a.start === void 0 || s.end === void 0 ? 0 : a.start - s.end)();
|
|
11034
|
-
return W({ id: (c = s.uuid) != null ? c :
|
|
11085
|
+
return W({ id: (c = s.uuid) != null ? c : He(), moveIndex: r, stay: l, index: r }, s);
|
|
11035
11086
|
})
|
|
11036
11087
|
};
|
|
11037
11088
|
if (o.panoIndexList) {
|
|
@@ -11054,7 +11105,7 @@ class Xa extends Ot {
|
|
|
11054
11105
|
stay: o.stay,
|
|
11055
11106
|
data: W({ effect: "Move", panoIndex: c, moveEffect: r }, h != null ? h : {})
|
|
11056
11107
|
}) : o.moveType === "moveAndRotate" && (s.push({ moveIndex: d, stay: o.stay, data: { effect: "Move", panoIndex: c, moveEffect: r } }), h && s.push({ moveIndex: d, stay: o.stay, data: W({ effect: "Rotate", panoIndex: c }, h) }));
|
|
11057
|
-
}), { keyframesId:
|
|
11108
|
+
}), { keyframesId: He(), keyframes: s.map((c, d) => W({ id: He(), index: d }, c)) };
|
|
11058
11109
|
} else
|
|
11059
11110
|
throw new Error("format error: data no keyframes or no panoIndexList");
|
|
11060
11111
|
});
|
|
@@ -11081,7 +11132,7 @@ class Xa extends Ot {
|
|
|
11081
11132
|
const { data: n, state: o, privateState: s, hooks: r } = this;
|
|
11082
11133
|
if (s.playing || !(n != null && n.keyframes) || (n == null ? void 0 : n.keyframes.length) === 0)
|
|
11083
11134
|
return;
|
|
11084
|
-
const a =
|
|
11135
|
+
const a = He();
|
|
11085
11136
|
s.playId = a, s.playing = !0, s.broke = !1;
|
|
11086
11137
|
const l = n.keyframes, c = this.getPauseData();
|
|
11087
11138
|
(e == null ? void 0 : e.notEmitEvent) !== !0 && r.emit("play", { userAction: (p = e == null ? void 0 : e.userAction) != null ? p : !0 });
|
|
@@ -11409,7 +11460,7 @@ function Cm(i, t, e) {
|
|
|
11409
11460
|
t.clone().sub(s).add(r)
|
|
11410
11461
|
].map((l) => o.projectPoint(l, new E.Vector3()));
|
|
11411
11462
|
}
|
|
11412
|
-
const
|
|
11463
|
+
const Hs = (i, t = 1e3 / 60) => {
|
|
11413
11464
|
let e = null;
|
|
11414
11465
|
const n = i;
|
|
11415
11466
|
return (...s) => {
|
|
@@ -11470,7 +11521,7 @@ function Gs(i) {
|
|
|
11470
11521
|
},
|
|
11471
11522
|
i(s) {
|
|
11472
11523
|
o || (s && Ie(() => {
|
|
11473
|
-
n && n.end(1), e =
|
|
11524
|
+
n && n.end(1), e = Ot(t, ti, {
|
|
11474
11525
|
duration: i[1],
|
|
11475
11526
|
delay: i[0]
|
|
11476
11527
|
}), e.start();
|
|
@@ -11514,7 +11565,7 @@ function xm(i) {
|
|
|
11514
11565
|
}
|
|
11515
11566
|
function km(i, t, e) {
|
|
11516
11567
|
let { inDelay: n = 0 } = t, { duration: o = 0 } = t, { outDelay: s = 0 } = t, { unfolded: r } = t;
|
|
11517
|
-
const a =
|
|
11568
|
+
const a = He();
|
|
11518
11569
|
return i.$$set = (l) => {
|
|
11519
11570
|
"inDelay" in l && e(0, n = l.inDelay), "duration" in l && e(1, o = l.duration), "outDelay" in l && e(2, s = l.outDelay), "unfolded" in l && e(3, r = l.unfolded);
|
|
11520
11571
|
}, [n, o, s, r, a];
|
|
@@ -11568,7 +11619,7 @@ function Ns(i) {
|
|
|
11568
11619
|
},
|
|
11569
11620
|
i(r) {
|
|
11570
11621
|
s || (r && Ie(() => {
|
|
11571
|
-
o && o.end(1), n =
|
|
11622
|
+
o && o.end(1), n = Ot(t, Tt, { duration: i[0] }), n.start();
|
|
11572
11623
|
}), s = !0);
|
|
11573
11624
|
},
|
|
11574
11625
|
o(r) {
|
|
@@ -11805,7 +11856,7 @@ function Vs(i) {
|
|
|
11805
11856
|
},
|
|
11806
11857
|
i(h) {
|
|
11807
11858
|
l || (D(e.$$.fragment, h), h && Ie(() => {
|
|
11808
|
-
a && a.end(1), r =
|
|
11859
|
+
a && a.end(1), r = Ot(o, Tt, {
|
|
11809
11860
|
duration: i[2],
|
|
11810
11861
|
delay: i[3],
|
|
11811
11862
|
easing: Zt
|
|
@@ -11849,7 +11900,7 @@ function Rm(i) {
|
|
|
11849
11900
|
}
|
|
11850
11901
|
};
|
|
11851
11902
|
}
|
|
11852
|
-
function
|
|
11903
|
+
function Om(i, t, e) {
|
|
11853
11904
|
let { direction: n = "right" } = t, { visible: o = !0 } = t, { duration: s = 0 } = t, { inDelay: r = 0 } = t, { outDelay: a = 0 } = t;
|
|
11854
11905
|
function l(c) {
|
|
11855
11906
|
hc.call(this, i, c);
|
|
@@ -11858,12 +11909,12 @@ function Hm(i, t, e) {
|
|
|
11858
11909
|
"direction" in c && e(0, n = c.direction), "visible" in c && e(1, o = c.visible), "duration" in c && e(2, s = c.duration), "inDelay" in c && e(3, r = c.inDelay), "outDelay" in c && e(4, a = c.outDelay);
|
|
11859
11910
|
}, [n, o, s, r, a, l];
|
|
11860
11911
|
}
|
|
11861
|
-
class
|
|
11912
|
+
class Hm extends oe {
|
|
11862
11913
|
constructor(t) {
|
|
11863
11914
|
super(), ie(
|
|
11864
11915
|
this,
|
|
11865
11916
|
t,
|
|
11866
|
-
|
|
11917
|
+
Om,
|
|
11867
11918
|
Rm,
|
|
11868
11919
|
ne,
|
|
11869
11920
|
{
|
|
@@ -11929,7 +11980,7 @@ function _s(i, t) {
|
|
|
11929
11980
|
}
|
|
11930
11981
|
function qs(i) {
|
|
11931
11982
|
let t, e, n;
|
|
11932
|
-
return e = new
|
|
11983
|
+
return e = new Hm({
|
|
11933
11984
|
props: {
|
|
11934
11985
|
direction: i[6],
|
|
11935
11986
|
visible: i[0],
|
|
@@ -12140,7 +12191,7 @@ function Um(i, t, e) {
|
|
|
12140
12191
|
"tag" in u && e(0, r = u.tag);
|
|
12141
12192
|
}, i.$$.update = () => {
|
|
12142
12193
|
var u;
|
|
12143
|
-
i.$$.dirty & 1 && e(2, n = !!((u = r.state) != null && u.unfolded)), i.$$.dirty & 1 && e(7, o = r.data.text), i.$$.dirty & 128 && e(4, c = [{ id:
|
|
12194
|
+
i.$$.dirty & 1 && e(2, n = !!((u = r.state) != null && u.unfolded)), i.$$.dirty & 1 && e(7, o = r.data.text), i.$$.dirty & 128 && e(4, c = [{ id: He(), content: o }]), i.$$.dirty & 4 && (n || setTimeout(
|
|
12144
12195
|
() => {
|
|
12145
12196
|
e(1, l = !1);
|
|
12146
12197
|
},
|
|
@@ -12180,7 +12231,7 @@ function $s(i) {
|
|
|
12180
12231
|
},
|
|
12181
12232
|
i(s) {
|
|
12182
12233
|
o || (s && Ie(() => {
|
|
12183
|
-
n && n.end(1), e =
|
|
12234
|
+
n && n.end(1), e = Ot(t, ti, {
|
|
12184
12235
|
duration: i[1],
|
|
12185
12236
|
delay: i[0],
|
|
12186
12237
|
easing: pa
|
|
@@ -12226,7 +12277,7 @@ function Zm(i) {
|
|
|
12226
12277
|
}
|
|
12227
12278
|
function _m(i, t, e) {
|
|
12228
12279
|
let { inDelay: n = 0 } = t, { duration: o = 0 } = t, { outDelay: s = 0 } = t, { unfolded: r } = t;
|
|
12229
|
-
const a =
|
|
12280
|
+
const a = He();
|
|
12230
12281
|
return i.$$set = (l) => {
|
|
12231
12282
|
"inDelay" in l && e(0, n = l.inDelay), "duration" in l && e(1, o = l.duration), "outDelay" in l && e(2, s = l.outDelay), "unfolded" in l && e(3, r = l.unfolded);
|
|
12232
12283
|
}, [n, o, s, r, a];
|
|
@@ -12523,7 +12574,7 @@ function ap(i) {
|
|
|
12523
12574
|
let t, e, n, o, s, r, a = Ni(i[2]), l, c = Xi(i[2]), d, h = Wi(i[2]), u, p, m;
|
|
12524
12575
|
const g = i[12]["container-start"], v = xt(g, i, i[11], or), A = i[12]["wrapper-start"], w = xt(A, i, i[11], ir), y = i[12].default, x = xt(y, i, i[11], nr), L = i[12]["wrapper-end"], C = xt(L, i, i[11], tr);
|
|
12525
12576
|
let S = a && sr(i), k = c && rr(i), F = h && ar(i);
|
|
12526
|
-
const
|
|
12577
|
+
const O = i[12]["container-end"], G = xt(O, i, i[11], er);
|
|
12527
12578
|
let Y = [
|
|
12528
12579
|
{
|
|
12529
12580
|
class: p = ii(`${i[1]}${i[0] ? ` ${i[0]}` : ""}`)
|
|
@@ -12570,10 +12621,10 @@ function ap(i) {
|
|
|
12570
12621
|
tr
|
|
12571
12622
|
), T & 4 && (a = Ni(I[2])), a ? S ? S.p(I, T) : (S = sr(I), S.c(), S.m(t, l)) : S && (S.d(1), S = null), T & 4 && (c = Xi(I[2])), c ? k ? k.p(I, T) : (k = rr(I), k.c(), k.m(t, d)) : k && (k.d(1), k = null), T & 4 && (h = Wi(I[2])), h ? F ? F.p(I, T) : (F = ar(I), F.c(), F.m(t, u)) : F && (F.d(1), F = null), G && G.p && (!m || T & 2560) && Dt(
|
|
12572
12623
|
G,
|
|
12573
|
-
|
|
12624
|
+
O,
|
|
12574
12625
|
I,
|
|
12575
12626
|
I[11],
|
|
12576
|
-
m ? kt(
|
|
12627
|
+
m ? kt(O, I[11], T, np) : Lt(I[11]),
|
|
12577
12628
|
er
|
|
12578
12629
|
), Vn(t, P = Te(Y, [
|
|
12579
12630
|
(!m || T & 3 && p !== (p = ii(`${I[1]}${I[0] ? ` ${I[0]}` : ""}`))) && { class: p },
|
|
@@ -12599,8 +12650,8 @@ function lp(i, t, e) {
|
|
|
12599
12650
|
function S() {
|
|
12600
12651
|
return h;
|
|
12601
12652
|
}
|
|
12602
|
-
const k = (
|
|
12603
|
-
e(9, C =
|
|
12653
|
+
const k = (H) => {
|
|
12654
|
+
e(9, C = H), fc().then(() => {
|
|
12604
12655
|
h.$wrapperEl.children(".swiper-slide").each((N) => {
|
|
12605
12656
|
N.onSwiper && N.onSwiper(h);
|
|
12606
12657
|
}), h.updateSlides(), h.updateProgress(), h.updateSlidesClasses(), h.lazy && h.params.lazy.enabled && h.lazy.load();
|
|
@@ -12609,25 +12660,25 @@ function lp(i, t, e) {
|
|
|
12609
12660
|
p = Km(o), e(2, m = p.params), g = p.passedParams, e(3, v = p.rest);
|
|
12610
12661
|
};
|
|
12611
12662
|
F(), u = g;
|
|
12612
|
-
const
|
|
12663
|
+
const O = () => {
|
|
12613
12664
|
d = !0;
|
|
12614
12665
|
};
|
|
12615
|
-
if (m.onAny = (
|
|
12616
|
-
a(
|
|
12666
|
+
if (m.onAny = (H, ...N) => {
|
|
12667
|
+
a(H, N);
|
|
12617
12668
|
}, Object.assign(m.on, {
|
|
12618
|
-
_beforeBreakpoint:
|
|
12619
|
-
_containerClasses(
|
|
12669
|
+
_beforeBreakpoint: O,
|
|
12670
|
+
_containerClasses(H, N) {
|
|
12620
12671
|
e(1, c = N);
|
|
12621
12672
|
}
|
|
12622
12673
|
}), h = new zi(m), Bi("swiper", h), h.virtual && h.params.virtual.enabled) {
|
|
12623
|
-
const
|
|
12674
|
+
const H = {
|
|
12624
12675
|
cache: !1,
|
|
12625
12676
|
renderExternal: (N) => {
|
|
12626
12677
|
k(N), m.virtual && m.virtual.renderExternal && m.virtual.renderExternal(N);
|
|
12627
12678
|
},
|
|
12628
12679
|
renderExternalUpdate: !1
|
|
12629
12680
|
};
|
|
12630
|
-
mt(h.params.virtual,
|
|
12681
|
+
mt(h.params.virtual, H), mt(h.originalParams.virtual, H);
|
|
12631
12682
|
}
|
|
12632
12683
|
Ue(() => {
|
|
12633
12684
|
!A || ($m(
|
|
@@ -12640,18 +12691,18 @@ function lp(i, t, e) {
|
|
|
12640
12691
|
swiper: h
|
|
12641
12692
|
},
|
|
12642
12693
|
m
|
|
12643
|
-
), a("swiper", [h]), !m.virtual && h.slides.each((
|
|
12644
|
-
|
|
12694
|
+
), a("swiper", [h]), !m.virtual && h.slides.each((H) => {
|
|
12695
|
+
H.onSwiper && H.onSwiper(h);
|
|
12645
12696
|
}));
|
|
12646
12697
|
}), $i(() => {
|
|
12647
12698
|
if (!h)
|
|
12648
12699
|
return;
|
|
12649
12700
|
F();
|
|
12650
|
-
const
|
|
12651
|
-
(
|
|
12701
|
+
const H = ep(g, u);
|
|
12702
|
+
(H.length || d) && h && !h.destroyed && tp({
|
|
12652
12703
|
swiper: h,
|
|
12653
12704
|
passedParams: g,
|
|
12654
|
-
changedParams:
|
|
12705
|
+
changedParams: H,
|
|
12655
12706
|
nextEl: y,
|
|
12656
12707
|
prevEl: w,
|
|
12657
12708
|
scrollbarEl: x,
|
|
@@ -12660,33 +12711,33 @@ function lp(i, t, e) {
|
|
|
12660
12711
|
}), wt(() => {
|
|
12661
12712
|
typeof window != "undefined" && h && !h.destroyed && h.destroy(!0, !1);
|
|
12662
12713
|
});
|
|
12663
|
-
function G(
|
|
12664
|
-
ze[
|
|
12665
|
-
w =
|
|
12714
|
+
function G(H) {
|
|
12715
|
+
ze[H ? "unshift" : "push"](() => {
|
|
12716
|
+
w = H, e(5, w);
|
|
12666
12717
|
});
|
|
12667
12718
|
}
|
|
12668
|
-
function Y(
|
|
12669
|
-
ze[
|
|
12670
|
-
y =
|
|
12719
|
+
function Y(H) {
|
|
12720
|
+
ze[H ? "unshift" : "push"](() => {
|
|
12721
|
+
y = H, e(6, y);
|
|
12671
12722
|
});
|
|
12672
12723
|
}
|
|
12673
|
-
function P(
|
|
12674
|
-
ze[
|
|
12675
|
-
x =
|
|
12724
|
+
function P(H) {
|
|
12725
|
+
ze[H ? "unshift" : "push"](() => {
|
|
12726
|
+
x = H, e(7, x);
|
|
12676
12727
|
});
|
|
12677
12728
|
}
|
|
12678
|
-
function I(
|
|
12679
|
-
ze[
|
|
12680
|
-
L =
|
|
12729
|
+
function I(H) {
|
|
12730
|
+
ze[H ? "unshift" : "push"](() => {
|
|
12731
|
+
L = H, e(8, L);
|
|
12681
12732
|
});
|
|
12682
12733
|
}
|
|
12683
|
-
function T(
|
|
12684
|
-
ze[
|
|
12685
|
-
A =
|
|
12734
|
+
function T(H) {
|
|
12735
|
+
ze[H ? "unshift" : "push"](() => {
|
|
12736
|
+
A = H, e(4, A);
|
|
12686
12737
|
});
|
|
12687
12738
|
}
|
|
12688
|
-
return i.$$set = (
|
|
12689
|
-
t = ye(ye({}, t), ta(
|
|
12739
|
+
return i.$$set = (H) => {
|
|
12740
|
+
t = ye(ye({}, t), ta(H)), e(27, o = Jn(t, n)), "class" in H && e(0, l = H.class), "$$scope" in H && e(11, r = H.$$scope);
|
|
12690
12741
|
}, [
|
|
12691
12742
|
l,
|
|
12692
12743
|
c,
|
|
@@ -13055,7 +13106,7 @@ function hr(i) {
|
|
|
13055
13106
|
},
|
|
13056
13107
|
i(d) {
|
|
13057
13108
|
r || (D(n), d && Ie(() => {
|
|
13058
|
-
s && s.end(1), o =
|
|
13109
|
+
s && s.end(1), o = Ot(t, So, i[5] ? {
|
|
13059
13110
|
y: 4,
|
|
13060
13111
|
duration: i[3],
|
|
13061
13112
|
delay: i[1],
|
|
@@ -13287,30 +13338,30 @@ function Dp(i, t, e) {
|
|
|
13287
13338
|
let n, o, s, { tag: r } = t, { mediaData: a } = t, { inDelay: l = 0 } = t, { outDelay: c = 0 } = t, { duration: d = 0 } = t, { unfolded: h = !0 } = t, { animation: u = !0 } = t, { playButtonIfNeed: p = "small" } = t, { canPlay: m = !0 } = t, { objectFit: g = "cover" } = t, { enableCarousel: v = !0 } = t, { autoplayConfig: A = { autoplay: !0, autoplayVideo: !1 } } = t;
|
|
13288
13339
|
const w = pn("mediaStore"), y = pn("hooks");
|
|
13289
13340
|
let x;
|
|
13290
|
-
function L(
|
|
13341
|
+
function L(O) {
|
|
13291
13342
|
!n || !x || (w.set({ currentMediaUrl: this.src }), y.emit("playStateChange", {
|
|
13292
|
-
event:
|
|
13343
|
+
event: O,
|
|
13293
13344
|
state: "playing",
|
|
13294
13345
|
tag: r,
|
|
13295
13346
|
mediaInstance: this
|
|
13296
13347
|
}), x.autoplay.stop());
|
|
13297
13348
|
}
|
|
13298
|
-
function C(
|
|
13349
|
+
function C(O) {
|
|
13299
13350
|
!n || !x || (y.emit("playStateChange", {
|
|
13300
|
-
event:
|
|
13351
|
+
event: O,
|
|
13301
13352
|
state: "paused",
|
|
13302
13353
|
tag: r,
|
|
13303
13354
|
mediaInstance: this
|
|
13304
13355
|
}), x.autoplay.running || x.autoplay.start());
|
|
13305
13356
|
}
|
|
13306
13357
|
let S = null;
|
|
13307
|
-
const k = (
|
|
13308
|
-
e(10, x =
|
|
13309
|
-
}, F = (
|
|
13310
|
-
var
|
|
13358
|
+
const k = (O) => {
|
|
13359
|
+
e(10, x = O.detail[0]);
|
|
13360
|
+
}, F = (O) => J(this, null, function* () {
|
|
13361
|
+
var H, N, Z;
|
|
13311
13362
|
if (!s || !A.autoplayVideo)
|
|
13312
13363
|
return;
|
|
13313
|
-
const G =
|
|
13364
|
+
const G = O.detail[0];
|
|
13314
13365
|
if (!G)
|
|
13315
13366
|
return;
|
|
13316
13367
|
const Y = G.realIndex;
|
|
@@ -13321,18 +13372,18 @@ function Dp(i, t, e) {
|
|
|
13321
13372
|
if (!P || P.type !== "Video")
|
|
13322
13373
|
return;
|
|
13323
13374
|
G.autoplay.stop(), G.slides.map((X) => X.querySelector("video")).filter(Bt).forEach((X) => X.pause());
|
|
13324
|
-
const T = (
|
|
13375
|
+
const T = (H = G.slides[G.activeIndex]) == null ? void 0 : H.querySelector("video");
|
|
13325
13376
|
if (T && (T.removeEventListener("play", L), T.removeEventListener("pause", C), T.addEventListener("play", L), T.addEventListener("pause", C)), T) {
|
|
13326
13377
|
T.addEventListener("click", () => T.pause());
|
|
13327
13378
|
const X = (Z = (N = T.parentElement) == null ? void 0 : N.getElementsByClassName("video-play-button-container")) == null ? void 0 : Z[0];
|
|
13328
13379
|
T.addEventListener("play", () => X == null ? void 0 : X.classList.remove("showPlayButton")), T.addEventListener("pause", () => X == null ? void 0 : X.classList.add("showPlayButton")), X && (T.paused ? X.classList.add("showPlayButton") : X.classList.remove("showPlayButton"), X.addEventListener("click", () => T.play()));
|
|
13329
13380
|
}
|
|
13330
13381
|
});
|
|
13331
|
-
return i.$$set = (
|
|
13332
|
-
"tag" in
|
|
13382
|
+
return i.$$set = (O) => {
|
|
13383
|
+
"tag" in O && e(17, r = O.tag), "mediaData" in O && e(0, a = O.mediaData), "inDelay" in O && e(1, l = O.inDelay), "outDelay" in O && e(2, c = O.outDelay), "duration" in O && e(3, d = O.duration), "unfolded" in O && e(4, h = O.unfolded), "animation" in O && e(5, u = O.animation), "playButtonIfNeed" in O && e(6, p = O.playButtonIfNeed), "canPlay" in O && e(7, m = O.canPlay), "objectFit" in O && e(8, g = O.objectFit), "enableCarousel" in O && e(18, v = O.enableCarousel), "autoplayConfig" in O && e(9, A = O.autoplayConfig);
|
|
13333
13384
|
}, i.$$.update = () => {
|
|
13334
|
-
i.$$.dirty & 262145 && e(13, n = v && (a == null ? void 0 : a.length) > 1), i.$$.dirty & 1 && e(11, o = a), i.$$.dirty & 2560 && e(14, s = o.length > 1 && A.autoplay), i.$$.dirty & 1024 && x && x.slides.forEach((
|
|
13335
|
-
const G =
|
|
13385
|
+
i.$$.dirty & 262145 && e(13, n = v && (a == null ? void 0 : a.length) > 1), i.$$.dirty & 1 && e(11, o = a), i.$$.dirty & 2560 && e(14, s = o.length > 1 && A.autoplay), i.$$.dirty & 1024 && x && x.slides.forEach((O) => {
|
|
13386
|
+
const G = O.querySelector("video");
|
|
13336
13387
|
G && w.subscribe(({ currentMediaUrl: Y }) => {
|
|
13337
13388
|
Y !== G.src && G.pause();
|
|
13338
13389
|
});
|
|
@@ -13562,7 +13613,7 @@ function zp(i, t, e) {
|
|
|
13562
13613
|
"tag" in l && e(0, r = l.tag);
|
|
13563
13614
|
}, i.$$.update = () => {
|
|
13564
13615
|
var l, c, d;
|
|
13565
|
-
i.$$.dirty & 1 && e(4, n = r.state ? r.state.unfolded : !1), i.$$.dirty & 1 && e(1, o = ((c = (l = r.data.text) == null ? void 0 : l.length) != null ? c : 0) > 7 ? ((d = r.data.text) == null ? void 0 : d.substring(0, 6)) + "..." : r.data.text), i.$$.dirty & 1 && e(3, s = r.data.mediaData), i.$$.dirty & 2 && e(2, a = o ? [{ id:
|
|
13616
|
+
i.$$.dirty & 1 && e(4, n = r.state ? r.state.unfolded : !1), i.$$.dirty & 1 && e(1, o = ((c = (l = r.data.text) == null ? void 0 : l.length) != null ? c : 0) > 7 ? ((d = r.data.text) == null ? void 0 : d.substring(0, 6)) + "..." : r.data.text), i.$$.dirty & 1 && e(3, s = r.data.mediaData), i.$$.dirty & 2 && e(2, a = o ? [{ id: He(), content: o }] : []);
|
|
13566
13617
|
}, [r, o, a, s, n];
|
|
13567
13618
|
}
|
|
13568
13619
|
class Mp extends oe {
|
|
@@ -13719,7 +13770,7 @@ function Bp(i) {
|
|
|
13719
13770
|
let S = i[2].tags || [], k = [];
|
|
13720
13771
|
for (let P = 0; P < S.length; P += 1)
|
|
13721
13772
|
k[P] = Er(vr(i, S, P));
|
|
13722
|
-
let F = ((G = i[2].price) == null ? void 0 : G.value) !== void 0 && ((Y = i[2].price) == null ? void 0 : Y.value) !== null && Pr(i),
|
|
13773
|
+
let F = ((G = i[2].price) == null ? void 0 : G.value) !== void 0 && ((Y = i[2].price) == null ? void 0 : Y.value) !== null && Pr(i), O = i[2].highlightText && xr(i);
|
|
13723
13774
|
return {
|
|
13724
13775
|
c() {
|
|
13725
13776
|
var P, I;
|
|
@@ -13729,7 +13780,7 @@ function Bp(i) {
|
|
|
13729
13780
|
h = V();
|
|
13730
13781
|
for (let T = 0; T < k.length; T += 1)
|
|
13731
13782
|
k[T].c();
|
|
13732
|
-
u = V(), p = j("div"), m = j("div"), v = xe(g), A = V(), w = j("div"), F && F.c(), y = V(),
|
|
13783
|
+
u = V(), p = j("div"), m = j("div"), v = xe(g), A = V(), w = j("div"), F && F.c(), y = V(), O && O.c(), b(o, "class", "line svelte-8mby9k"), R(o, "transition-delay", i[1] ? Rn + "ms" : On + Dr - kr - 40 + "ms"), b(a, "class", "headerImage svelte-8mby9k"), et(a.src, l = i[2].headerPictureUrl) || b(a, "src", l), b(a, "alt", ""), b(d, "class", "tag svelte-8mby9k"), b(m, "class", "text svelte-8mby9k"), b(p, "class", "title svelte-8mby9k"), b(w, "class", "footer svelte-8mby9k"), R(w, "height", ((P = i[2].price) == null ? void 0 : P.value) !== void 0 && ((I = i[2].price) == null ? void 0 : I.value) !== null && i[2].highlightText ? void 0 : "1rem"), b(r, "class", "content svelte-8mby9k"), R(r, "transition-delay", i[1] ? Rn + On + "ms" : "0ms"), b(t, "class", "marketing svelte-8mby9k"), q(t, "unfolded", i[1]), q(t, "folded", i[3]);
|
|
13733
13784
|
},
|
|
13734
13785
|
m(P, I) {
|
|
13735
13786
|
B(P, t, I), K(e, t, null), Q(t, n), Q(t, o), Q(t, s), Q(t, r), Q(r, a), Q(r, c), Q(r, d);
|
|
@@ -13738,12 +13789,12 @@ function Bp(i) {
|
|
|
13738
13789
|
Q(d, h);
|
|
13739
13790
|
for (let T = 0; T < k.length; T += 1)
|
|
13740
13791
|
k[T].m(d, null);
|
|
13741
|
-
Q(r, u), Q(r, p), Q(p, m), Q(m, v), Q(r, A), Q(r, w), F && F.m(w, null), Q(w, y),
|
|
13792
|
+
Q(r, u), Q(r, p), Q(p, m), Q(m, v), Q(r, A), Q(r, w), F && F.m(w, null), Q(w, y), O && O.m(w, null), x = !0;
|
|
13742
13793
|
},
|
|
13743
13794
|
p(P, [I]) {
|
|
13744
|
-
var
|
|
13795
|
+
var H, N, Z, X;
|
|
13745
13796
|
const T = {};
|
|
13746
|
-
if (I & 2 && (T.visible = P[1]), e.$set(T), I & 2 && R(o, "transition-delay", P[1] ? Rn + "ms" :
|
|
13797
|
+
if (I & 2 && (T.visible = P[1]), e.$set(T), I & 2 && R(o, "transition-delay", P[1] ? Rn + "ms" : On + Dr - kr - 40 + "ms"), (!x || I & 4 && !et(a.src, l = P[2].headerPictureUrl)) && b(a, "src", l), I & 4) {
|
|
13747
13798
|
L = P[2].brandTags || [];
|
|
13748
13799
|
let U;
|
|
13749
13800
|
for (U = 0; U < L.length; U += 1) {
|
|
@@ -13765,7 +13816,7 @@ function Bp(i) {
|
|
|
13765
13816
|
k[U].d(1);
|
|
13766
13817
|
k.length = S.length;
|
|
13767
13818
|
}
|
|
13768
|
-
(!x || I & 4) && g !== (g = P[2].title + "") && Me(v, g), ((
|
|
13819
|
+
(!x || I & 4) && g !== (g = P[2].title + "") && Me(v, g), ((H = P[2].price) == null ? void 0 : H.value) !== void 0 && ((N = P[2].price) == null ? void 0 : N.value) !== null ? F ? F.p(P, I) : (F = Pr(P), F.c(), F.m(w, y)) : F && (F.d(1), F = null), P[2].highlightText ? O ? O.p(P, I) : (O = xr(P), O.c(), O.m(w, null)) : O && (O.d(1), O = null), I & 4 && R(w, "height", ((Z = P[2].price) == null ? void 0 : Z.value) !== void 0 && ((X = P[2].price) == null ? void 0 : X.value) !== null && P[2].highlightText ? void 0 : "1rem"), I & 2 && R(r, "transition-delay", P[1] ? Rn + On + "ms" : "0ms"), (!x || I & 2) && q(t, "unfolded", P[1]), (!x || I & 8) && q(t, "folded", P[3]);
|
|
13769
13820
|
},
|
|
13770
13821
|
i(P) {
|
|
13771
13822
|
x || (D(e.$$.fragment, P), x = !0);
|
|
@@ -13774,11 +13825,11 @@ function Bp(i) {
|
|
|
13774
13825
|
M(e.$$.fragment, P), x = !1;
|
|
13775
13826
|
},
|
|
13776
13827
|
d(P) {
|
|
13777
|
-
P && z(t), $(e), tt(C, P), tt(k, P), F && F.d(),
|
|
13828
|
+
P && z(t), $(e), tt(C, P), tt(k, P), F && F.d(), O && O.d();
|
|
13778
13829
|
}
|
|
13779
13830
|
};
|
|
13780
13831
|
}
|
|
13781
|
-
const Rn = 400, kr = 500,
|
|
13832
|
+
const Rn = 400, kr = 500, On = 180, Dr = 500;
|
|
13782
13833
|
function jp(i, t, e) {
|
|
13783
13834
|
let n, o, s, { tag: r } = t;
|
|
13784
13835
|
return i.$$set = (a) => {
|
|
@@ -13820,7 +13871,7 @@ function Lr(i) {
|
|
|
13820
13871
|
},
|
|
13821
13872
|
i(m) {
|
|
13822
13873
|
h || (D(e.$$.fragment, m), m && Ie(() => {
|
|
13823
|
-
d && d.end(1), c =
|
|
13874
|
+
d && d.end(1), c = Ot(t, Tt, {
|
|
13824
13875
|
duration: i[2],
|
|
13825
13876
|
delay: i[0],
|
|
13826
13877
|
easing: Zt
|
|
@@ -13839,7 +13890,7 @@ function Lr(i) {
|
|
|
13839
13890
|
}
|
|
13840
13891
|
};
|
|
13841
13892
|
}
|
|
13842
|
-
function
|
|
13893
|
+
function Op(i) {
|
|
13843
13894
|
let t, e, n = i[4] && Lr(i);
|
|
13844
13895
|
return {
|
|
13845
13896
|
c() {
|
|
@@ -13864,7 +13915,7 @@ function Hp(i) {
|
|
|
13864
13915
|
}
|
|
13865
13916
|
};
|
|
13866
13917
|
}
|
|
13867
|
-
function
|
|
13918
|
+
function Hp(i, t, e) {
|
|
13868
13919
|
let { inDelay: n = 0 } = t, { outDelay: o = 0 } = t, { duration: s = 0 } = t, { url: r } = t, { unfolded: a } = t, { hooksInfo: l = {} } = t;
|
|
13869
13920
|
const c = pn("hooks"), d = pn("mediaStore");
|
|
13870
13921
|
let h, u = !0;
|
|
@@ -13925,8 +13976,8 @@ class Fp extends oe {
|
|
|
13925
13976
|
super(), ie(
|
|
13926
13977
|
this,
|
|
13927
13978
|
t,
|
|
13928
|
-
Op,
|
|
13929
13979
|
Hp,
|
|
13980
|
+
Op,
|
|
13930
13981
|
ne,
|
|
13931
13982
|
{
|
|
13932
13983
|
inDelay: 0,
|
|
@@ -13988,8 +14039,8 @@ function Sr(i) {
|
|
|
13988
14039
|
S & 32 && (k.visible = C[5]), S & 4 && (k.left = C[2] / 2 + "px"), e.$set(k);
|
|
13989
14040
|
const F = {};
|
|
13990
14041
|
S & 32 && (F.unfolded = C[5]), S & 24 && (F.outDelay = C[4] + 20 * Math.min((P = (Y = C[3][0]) == null ? void 0 : Y.content.length) != null ? P : 10, 15)), s.$set(F), S & 4 && R(o, "width", C[2] + "px");
|
|
13991
|
-
const
|
|
13992
|
-
S & 32 && (
|
|
14042
|
+
const O = {};
|
|
14043
|
+
S & 32 && (O.unfolded = C[5]), S & 1 && (O.url = C[0].data.audioUrl), S & 8 && (O.outDelay = 20 * Math.min((T = (I = C[3][0]) == null ? void 0 : I.content.length) != null ? T : 10, 15)), S & 1 && (O.hooksInfo = { tag: C[0] }), d.$set(O);
|
|
13993
14044
|
const G = {};
|
|
13994
14045
|
S & 32 && (G.visible = C[5]), S & 2 && (G.textUnfolded = C[1]), S & 8 && (G.textItems = C[3]), p.$set(G), (!g || S & 32) && q(t, "unfolded", C[5]);
|
|
13995
14046
|
},
|
|
@@ -14041,7 +14092,7 @@ function Wp(i, t, e) {
|
|
|
14041
14092
|
"tag" in u && e(0, r = u.tag);
|
|
14042
14093
|
}, i.$$.update = () => {
|
|
14043
14094
|
var u;
|
|
14044
|
-
i.$$.dirty & 1 && e(5, n = !!((u = r.state) != null && u.unfolded)), i.$$.dirty & 1 && e(7, o = r.data.text), i.$$.dirty & 128 && e(3, c = [{ id:
|
|
14095
|
+
i.$$.dirty & 1 && e(5, n = !!((u = r.state) != null && u.unfolded)), i.$$.dirty & 1 && e(7, o = r.data.text), i.$$.dirty & 128 && e(3, c = [{ id: He(), content: o }]), i.$$.dirty & 2 && e(4, s = a ? 450 : 0);
|
|
14045
14096
|
}, [
|
|
14046
14097
|
r,
|
|
14047
14098
|
a,
|
|
@@ -15003,12 +15054,12 @@ function Rr(i, t, e) {
|
|
|
15003
15054
|
const n = i.slice();
|
|
15004
15055
|
return n[6] = t[e], n;
|
|
15005
15056
|
}
|
|
15006
|
-
function
|
|
15057
|
+
function Or(i) {
|
|
15007
15058
|
let t, e = [], n = /* @__PURE__ */ new Map(), o, s = i[1];
|
|
15008
15059
|
const r = (a) => a[6].id;
|
|
15009
15060
|
for (let a = 0; a < s.length; a += 1) {
|
|
15010
15061
|
let l = Rr(i, s, a), c = r(l);
|
|
15011
|
-
n.set(c, e[a] =
|
|
15062
|
+
n.set(c, e[a] = Hr(c, l));
|
|
15012
15063
|
}
|
|
15013
15064
|
return {
|
|
15014
15065
|
c() {
|
|
@@ -15024,7 +15075,7 @@ function Hr(i) {
|
|
|
15024
15075
|
o = !0;
|
|
15025
15076
|
},
|
|
15026
15077
|
p(a, l) {
|
|
15027
|
-
l & 63 && (s = a[1], ce(), e = Je(e, l, r, 1, a, s, n, t, at,
|
|
15078
|
+
l & 63 && (s = a[1], ce(), e = Je(e, l, r, 1, a, s, n, t, at, Hr, null, Rr), de()), (!o || l & 40) && q(t, "hide", !a[3].visible || !a[5].visible), (!o || l & 1) && q(t, "withAnimation", a[0]);
|
|
15028
15079
|
},
|
|
15029
15080
|
i(a) {
|
|
15030
15081
|
if (!o) {
|
|
@@ -15045,7 +15096,7 @@ function Hr(i) {
|
|
|
15045
15096
|
}
|
|
15046
15097
|
};
|
|
15047
15098
|
}
|
|
15048
|
-
function
|
|
15099
|
+
function Hr(i, t) {
|
|
15049
15100
|
let e, n, o, s;
|
|
15050
15101
|
const r = [
|
|
15051
15102
|
{
|
|
@@ -15097,7 +15148,7 @@ function Or(i, t) {
|
|
|
15097
15148
|
};
|
|
15098
15149
|
}
|
|
15099
15150
|
function Bg(i) {
|
|
15100
|
-
let t, e, n = i[3].enabled &&
|
|
15151
|
+
let t, e, n = i[3].enabled && Or(i);
|
|
15101
15152
|
return {
|
|
15102
15153
|
c() {
|
|
15103
15154
|
n && n.c(), t = fe();
|
|
@@ -15106,7 +15157,7 @@ function Bg(i) {
|
|
|
15106
15157
|
n && n.m(o, s), B(o, t, s), e = !0;
|
|
15107
15158
|
},
|
|
15108
15159
|
p(o, [s]) {
|
|
15109
|
-
o[3].enabled ? n ? (n.p(o, s), s & 8 && D(n, 1)) : (n =
|
|
15160
|
+
o[3].enabled ? n ? (n.p(o, s), s & 8 && D(n, 1)) : (n = Or(o), n.c(), D(n, 1), n.m(t.parentNode, t)) : n && (ce(), M(n, 1, 1, () => {
|
|
15110
15161
|
n = null;
|
|
15111
15162
|
}), de());
|
|
15112
15163
|
},
|
|
@@ -15187,7 +15238,7 @@ const Rg = {
|
|
|
15187
15238
|
}
|
|
15188
15239
|
}
|
|
15189
15240
|
};
|
|
15190
|
-
class
|
|
15241
|
+
class Og extends ci {
|
|
15191
15242
|
constructor(e) {
|
|
15192
15243
|
super(e);
|
|
15193
15244
|
f(this, "tagCacheByPanoIndex", {});
|
|
@@ -15211,7 +15262,7 @@ class Hg extends ci {
|
|
|
15211
15262
|
this.tagCacheByPanoIndex = {};
|
|
15212
15263
|
}
|
|
15213
15264
|
}
|
|
15214
|
-
class
|
|
15265
|
+
class Hg extends Og {
|
|
15215
15266
|
constructor(e) {
|
|
15216
15267
|
super(e);
|
|
15217
15268
|
f(this, "tags", []);
|
|
@@ -15461,7 +15512,7 @@ class Og extends Hg {
|
|
|
15461
15512
|
}
|
|
15462
15513
|
}
|
|
15463
15514
|
const $a = "1.2.6", Yi = `DnalogelPlugin-PanoTagPlugin@${$a}`, Fg = !1, gA = (i) => `${Yi}--${i}`;
|
|
15464
|
-
class Gg extends
|
|
15515
|
+
class Gg extends Hg {
|
|
15465
15516
|
constructor(e, n) {
|
|
15466
15517
|
super(e);
|
|
15467
15518
|
f(this, "version", $a);
|
|
@@ -15640,7 +15691,7 @@ class Gg extends Og {
|
|
|
15640
15691
|
}, 500),
|
|
15641
15692
|
e
|
|
15642
15693
|
), { observe: a, unobserve: l } = Fs(
|
|
15643
|
-
|
|
15694
|
+
Hs(() => n(), 400),
|
|
15644
15695
|
e
|
|
15645
15696
|
);
|
|
15646
15697
|
return s(), a(), () => {
|
|
@@ -15691,7 +15742,7 @@ class Gg extends Og {
|
|
|
15691
15742
|
});
|
|
15692
15743
|
}
|
|
15693
15744
|
handleFiveCameraUpdateDebounce() {
|
|
15694
|
-
return
|
|
15745
|
+
return Hs(() => {
|
|
15695
15746
|
this.setUnfoldedByCamera(), this.updateRenderAllTags();
|
|
15696
15747
|
}, 100);
|
|
15697
15748
|
}
|
|
@@ -16985,7 +17036,7 @@ class c0 extends fo {
|
|
|
16985
17036
|
this.scale(n), console.log("%c RectangleScaleController dragging", "color: #49de1b");
|
|
16986
17037
|
}
|
|
16987
17038
|
scale(e) {
|
|
16988
|
-
var F,
|
|
17039
|
+
var F, O;
|
|
16989
17040
|
if (!this.startInfo)
|
|
16990
17041
|
return;
|
|
16991
17042
|
const n = this.originObject3D, { startPoint: o, plane: s } = this.startInfo, r = this.helperObject3D.cornerPositions;
|
|
@@ -16998,15 +17049,15 @@ class c0 extends fo {
|
|
|
16998
17049
|
const Y = new _(0, 0, 0);
|
|
16999
17050
|
if (!this.startInfo)
|
|
17000
17051
|
return Y;
|
|
17001
|
-
const P = (G === "ew" ? h : u).clone(), I = c.clone().projectOnVector(P), T = a.clone().projectOnVector(P),
|
|
17052
|
+
const P = (G === "ew" ? h : u).clone(), I = c.clone().projectOnVector(P), T = a.clone().projectOnVector(P), H = l.clone().projectOnVector(P);
|
|
17002
17053
|
if (T.equals(I))
|
|
17003
17054
|
return Y;
|
|
17004
17055
|
if (G === "ns" && typeof this.startInfo.dragPointInCenterBottom != "boolean") {
|
|
17005
|
-
const X = new _().subVectors(T,
|
|
17056
|
+
const X = new _().subVectors(T, H), U = X.x < 0 && P.x >= 0, le = X.y < 0 && P.y >= 0, ue = X.z < 0 && P.z >= 0;
|
|
17006
17057
|
this.startInfo.dragPointInCenterBottom = U || le || ue;
|
|
17007
17058
|
}
|
|
17008
17059
|
if (G === "ew" && typeof this.startInfo.dragPointInCenterLeft != "boolean") {
|
|
17009
|
-
const X = new _().subVectors(T,
|
|
17060
|
+
const X = new _().subVectors(T, H), U = X.x < 0 && P.x >= 0, le = X.y < 0 && P.y >= 0, ue = X.z < 0 && P.z >= 0;
|
|
17010
17061
|
this.startInfo.dragPointInCenterLeft = U || le || ue;
|
|
17011
17062
|
}
|
|
17012
17063
|
const N = new _().subVectors(T, I), Z = N.length();
|
|
@@ -17038,7 +17089,7 @@ class c0 extends fo {
|
|
|
17038
17089
|
const w = new _().subVectors(r[1], r[0]).length() / h.length(), y = new _().subVectors(r[3], r[0]).length() / u.length(), x = new _(w, y, 1), L = new E.Matrix4().scale(x);
|
|
17039
17090
|
n.isCSS3DObjectPlus ? n.applyScaleMatrix4(L) : n.scale.applyMatrix4(L), o.position.copy(a);
|
|
17040
17091
|
const C = new _().addVectors(r[0], r[2]).divideScalar(2), S = new _().subVectors(C, l), k = new E.Matrix4().setPosition(S);
|
|
17041
|
-
n.applyMatrix4(k), (F = this.helperObject3D.css3DInstance) == null || F.css3DObject.applyMatrix4(k), (
|
|
17092
|
+
n.applyMatrix4(k), (F = this.helperObject3D.css3DInstance) == null || F.css3DObject.applyMatrix4(k), (O = this.helperObject3D.plane) == null || O.applyMatrix4(k), this.hooks.emit("scaleUpdate", { matrix4: L, helperOrigin: l }), this.hooks.emit("positionUpdate", { matrix4: k }), this.render();
|
|
17042
17093
|
}
|
|
17043
17094
|
dragEnd() {
|
|
17044
17095
|
!this.isDragging || (this.startInfo = void 0, this.isDragging = !1, this.hooks.emit("scaleEnd"), this.render(), console.log("%c RectangleScaleController dragEnd", "color: #e94e4e"));
|
|
@@ -17204,7 +17255,7 @@ class p0 {
|
|
|
17204
17255
|
return this.xInterval.contains(t.xInterval) && this.yInterval.contains(t.yInterval);
|
|
17205
17256
|
}
|
|
17206
17257
|
}
|
|
17207
|
-
function
|
|
17258
|
+
function Hn(i, t, e) {
|
|
17208
17259
|
const n = i[t], o = i[e];
|
|
17209
17260
|
!n || !o || (i[t] = o, i[e] = n);
|
|
17210
17261
|
}
|
|
@@ -17214,7 +17265,7 @@ function g0(i, t, e) {
|
|
|
17214
17265
|
const s = e - (o - 1);
|
|
17215
17266
|
for (let r = 1; r <= t; r++) {
|
|
17216
17267
|
const a = (o - 1) * t + r - 1, l = (s - 1) * t + r - 1;
|
|
17217
|
-
|
|
17268
|
+
Hn(i, a * 4 + 0, l * 4 + 0), Hn(i, a * 4 + 1, l * 4 + 1), Hn(i, a * 4 + 2, l * 4 + 2), Hn(i, a * 4 + 3, l * 4 + 3);
|
|
17218
17269
|
}
|
|
17219
17270
|
}
|
|
17220
17271
|
}
|